본문 바로가기
콤퓨타/Simulator&Testing

dbt3 (postgreSQL)

by 어니엉 2013. 5. 6.
728x90

ㅇ ㅏㅏㅏㅏㅏㅏㅏ 삽질의 산물


1.  PostgreSQL install


다운로드


http://www.postgresql.org/ftp/source/v9.2.2/ 


압축푼다음에 폴더로 들어가서

./configure --without-readline

gmake

sudo gmake install


그러면 /usr/local/pgsql 폴더 생김 !


데이퉈가 들어갈 위치를 만들어줘야함

sudo mkdir /usr/local/pgsql/data

sudo chown -R karyurid704:cal-alumni /usr/local/pgsql  


~/.bash_profile 설정

PATH=$PATH:/usr/local/pgsql/bin추가 꼭 해줄것 !

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib 

sudo ldconfig

source ~/.bash_profile


2. dbt3 설치 

다운로드 

http://sourceforge.net/projects/osdldbt/files/dbt3/


압축풀고 폴더로 고고싱 (run_workload 기준임)

scripts/dbt3_profile.in 파일 열어서

DSS_PATH부분 수정 -> postgreSQL의 data가 있을 곳의 위치를 쓰면됨다

위에서 postgreSQL설치할 때 만들어준 data폴더의 위치임

export DSS_PATH=/usr/local/pgsql/data


scripts/pgsql/pgsql_profile.in 파일 열어서

PGDATA 부분도 위에 DSS_PATH랑 같은 패쓰로 설정해야함

TSDIR은 테이블스페이스 마운트 포인트 어쩌구하는데.. 걍 홈폴더에 폴더하나 만들어서 거기로 지정했음.. 왜냐하면 디비는 root로 실행하면 안되는데, 기본으로 지정되있는 /mnt 어쩌구 위치는 루트꺼라서 나중에 꼬일까봐 홈폴더에 하나 만들만들만들~.~


다음과 같이 설치

aclocal

autoreconf --install

./configure 

make

sudo make install


~/.bash_profile 수정 ( script로 있는 run_workload 할 때에는 안해도 됨다.. 전 안함 ㅋㅋㅋ.. )

DBT3_INSTALL_PATH 변수 추가 : dbt3 설치 위치

DSS_PATH 변수 추가 : postgreSQL의 data가 있는 곳의 위치

DSS_QUERY 변수 추가 : DSS_QUERY=$DPT3_INSTALL_PATH/queries

DSS_CONFIG 변수 추가 : DSS_CONFIG=$DBT3_INSTALL_PATH/src/dbgen



src/dbgen 들어가서 make 하면 dbgen 실행파일이 생성될 것임.

그러면 다음과 같이 실행

./dbgen -vfF -s 5 -T L




3. scripts/run_workload.sh 실행하기 전에 고쳐야 할 부분들★★


1) scripts/pgsql/create_db.sh 열고 맨 끝에 부분에

_test=`echo $_o | grep CREATE`

if [ "$_test" = "" ]; then

   echo "/usr/local/pgsql/bin/createdb $SID failed: $_o $_test"

   exit 1

fi

이부분 다 주석처리하거나 없애버려야함.. 


2) scripts/start_sysstats.sh

/usr/bin/sar -o $OUTPUT_DIR/sar.out $SAMPLE_LENGTH 0 &

이부분에서 끝에 0 빼야함.. 즉, 

/usr/bin/sar -o $OUTPUT_DIR/sar.out $SAMPLE_LENGTH & 

이렇게 바꾸세영


3) scripts/run_workload.sh

136, 137번째 줄에

perl $SRCDIR/scripts/graph_query_time.pl --if $OUTPUT_DIR/q_time.out || exit 1

${SHELL} $SRCDIR/scripts/gen_html.sh $OUTPUT_DIR > $OUTPUT_DIR/index.html || exit 1

예네 두줄은 주석처리하거나 없애고 돌려야함

graph_query_time.pl에서 에러가 syntax에러가 쭊쭊 나는데, 결과값을 그래프로 이쁘게 그려서 웹으로 이뿌게 보여주려고 하는거니까 지금상황에선 딱히 안해도 ㅇㅋ


4) scripts/pgsql/get_power.sh를 열고

51번째줄과, 63번째 줄에 exit 1 이라는 구문을 주석처리하거나 없애야 함

그래야 일부분이 데이터가 없어서 안돌아간다고 확 멈춰버리는 일이 없고, 결과 나온 애들만 가지고도 나중에 계산 결과가 대충 나오기라도 함



4. scripts/run_workload.sh 실행!!!!!!! 궈궈싱

이제 run_workload.sh 실행시키면 됨다



참고 1)

run workload.sh [-f <scale factor> -g -p ’<load database parameters>’ -q ’<power database parameters>’ -r ’<throughput database parameters>’ -y

옵션설명)

-e  Flag to get EXPLAIN ANALYZE results instead of query results.

-f  Database scale factor to use, 1 by default

-g  Build database data files.

-n Number of streams to use, 1 by default.

-o Flag to enable oprofile.

-p  Any PostgreSQL database parameters to use for the load test.

-q  Any PostgreSQL database parameters to use for the power test.

-r  Any PostgreSQL database parameters to use for the throughput test.

-v Flag for verbose script output.


참고 2)

run_workload.sh는 load, power, throughput 총 3가지의 테스트로 구성된다. 각 테스트의 파라미터를 보면 다음과 같다. (throughput_test 같은 경우는 help 메세지가 없어서 직접 옵션을 보고 작성하였는데.. 음..-ㅅ-)

Usage: pgsql/load_test.sh [-o <dir> -p <db_param> -f <scale_factor>]

Usage: pgsql/power_test.sh -f <SCALE_FACTOR> [-e -p <db_params> -t <tag> -y]

Usage: pgsql/throughput_test.sh -n <STREAM_NUM> -f <SCALE_FACTOR> [-o <dir> -p <db_params> -s <seed_file> -t <tag> -i <oprofile_flag>]




실행시킨거 보면 화면이 좀 지저분하게 나오긴하는데... -0-

중간중간에 ERROR:  column "transaction" does not exist 이런 에러가 있을텐데, 디비에 저런 컬럼이 없어서 그런거니 무시해도 될 듯.


다 끝나고 맨 마지막에

(standard_in) 11: illegal character: R

(standard_in) 11: illegal character: P

(standard_in) 11: illegal character: O

(standard_in) 11: illegal character: W

(standard_in) 11: illegal character: R

(standard_in) 11: illegal character: Q

(standard_in) 11: illegal character: '

(standard_in) 12: syntax error

이런 에러가 엄청많이 뜨는데, 무시해도 됨.. 결과는 나와있음

뭔지는 아직 분석 안해봄.. ㅈㅈ


다 끝나면 다음 명령어들을 실행해 줘야함.. 깔끔하게 안끝나염 ㅠㅠ 

killall /usr/bin/sar

killall /usr/bin/iostat

killall /usr/bin/vmstat


디엔드

728x90

'콤퓨타 > Simulator&Testing' 카테고리의 다른 글

DBT2 - MySQL  (0) 2013.05.07
dbt2 - postgreSQL로 돌리기 (미완성)  (0) 2013.05.07

댓글