SPECweb2005 Install & Configure Guide in Linux(fedora 13)
2011. 3. 3. 23:04첨부 : 1) 원본문서(hwp,pdf)
2) Besim httpd 환경설정 파일(httpd.conf_Besim)
SPECweb2005 Install & Configure Guide in Linux(fedora 13)
Version # |
작성일 |
작성자 |
|
설명 |
1.00 |
2011.3.3 |
김호연 |
hykim@q.ssu.ac.kr |
첫 버전 작성함 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
※ 본 문서는 SPECweb2005를 설치하고 구동하는 과정을 설명합니다.
※ 본 문서의 목적은, 어떠한 시행착오 없이 SPECweb2005을 보다 쉽게 사용할 수 있도록 함에 있습니다.
※ 본 문서는 SPECweb2005에서 제공하는 매뉴얼을 기반으로 작성되었습니다.(SPECweb2005\docs\index.html)
※ 본 문서의 내용은 추가/삭제/수정이 가능하며, 수정본을 http://nclab.tistory.com/의 ‘SPECweb2005’ 코너에 올려 주시거나, 상단의 제작자에게 메일을 주시기 바랍니다.
▣ 알아둘 내용
▷ 본 문서의 내용은 기본적인 Linux관련 지식이 있다는 가정아래 진행.
▷ 문서에서 사용된 기호의 의미
☞ : 실제적으로 command가 입력되는 부분.
√ : 설명 및 할당 값
<디렉토리> ] # : command를 입력하는 디렉토리. ‘…] #’ 의 경우, 어디서든 상관없음을 의미.
Apache : Linux fedora에서 'httpd'라는 이름으로 기본 제공됨. 즉, Apache=httpd.
▣ SPECweb2005 설치
▷Web Server, Besim, Client 공통 요구사항
> java : Web server, Besim, client에 각각 설치.
☞ …] # yum groupinstall java
▷console을 통해 설치 진행
> java -jar setup.jar -i console
√ 설치에 어려움은 없을 것이라 판단됨. 안내를 따라 설치할 것.
√ 이후의 내용은 default값을 기준으로 함.
⓵ Web Server
▷요구사항
> Apache(httpd) : 이 문서에서는, Apache를 이용한 php 사용.
> Version Check : PHP 4.3.n 이상의 버전이 필요함.
√ 다음명령어를 통해 설치 혹은 update
☞ …] # yum install php
1) ⓵에서 webserver를 설치 : '/web2005-1.20/' 디렉토리에 설치됨
2) Script를 Apache(httpd)의 'DocumentRoot' 디렉토리로 복사
☞ …] # cp /web2005-1.20/Scripts/php/* /var/www/html/
※ DocumentRoot : httpd의 환경설정 파일인 “/etc/httpd/conf/httpd.conf” 파일내의 변수.
Default 값 = “/var/www/html/”
3) ‘DocumentRoot’ 디렉토리에서, 권한 부여
☞ …/html]# chmod -R a+rw bank/ ecommerce/ support/ Smarty-2.6.7/
4) Wafgen
4-1) Wafgen README를 정독한다.
4-2) '/web2005-1.20/wafgen/unix/'에 해당하는 파일들을 수정
√ 'SIMULTANEOUS_SESSIONS' 과 'DOCROOT' 값을 반드시 넣어 주어야 함.
√ SIMULTANEOUS_SESSIONS : 동작시킬 Thread의 최대 개수 할당
※ *_image_*.rc 의 경우, SIMULTANEOUS_SESSIONS가 Section B 아래 존재하므로 변경하지 말 것.
√ DOCROOT : '2)'의 'DocumentRoot' 값 할당
4-3) '/web2005-1.20/wafgen/‘에서 wafgen 실행 : workload 설치
☞ …/wafgen] # java -Xms384m -Xmx384m -jar wafgen.jar <workload>.rc
4-4) ‘<DOCROOT>/<workload>/‘에 dynamic_padding 과 images 디렉토리 생성 확인
5) Web server 동작 test
5-1) Apache(httpd) 재시작
☞ …] # service httpd restart
5-2) 브라우저를 통하여, login.php 접속
: URL = http://<Web server IP address>/bank/login.php
5-3) id=1, password=1 입력하여, login
5-4) 각각의 page를 열어, 제대로 열리는가를 확인, error없이 열린다면 정상동작
⓶ Besim
▷요구사항
> ⓵의 Web Server와 동일
1) 1.에서 Besime(backend simulator??) 설치 : '/web2005-1.20/' 디렉토리에 설치됨.
2) '/web2005-1.20/Besim/Make_Readme' 정독!
√ 우리는 fcgi와 PHP를 사용할 것임
3) fcgi 설치
3-1) '/web2005-1.20/Besim/fcgi-2.4.0/README' 정독
3-2) fcgi 설치 : '/web2005-1.20/Besim/fcgi-2.4.0/'에서 아래 command 입력
☞ …/fcgi] # ./configure
☞ …/fcgi] # ./make
☞ …/fcgi] # ./make install
※ EOR error 발생시 : ‘…/fcgi-2.4.0/libfcgi/fcgio.cpp‘ 에 '#include <stdio.h>' line 추가
4) Besim compile
4-1) '/web2005-1.20/Besim/‘에 Make_Readme 정독
4-2) 'besim_fcgi.fcgi'를 설치하기 위한 디렉토리 생성
☞ …/Besim] # mkdir /var/www/fcgi-bin/
4-3) Besim compile
☞ …/Besim] # make fcgi TARGET='clean all install' DEST=/var/www/fcgi-bin/
4-4) '/var/www/fcgi-bin/‘에 ’Besim_fcgi.fcgi‘ 파일 생성 확인
5) mod_fastcgi.so 설치
5-1) httpd-devel 설치
☞ …] # yum install httpd-devel
5-2) mod_fastcgi 다운로드 및 설치 ( http://fastcgi.com/dist/ )
☞ …/mod_fastcgi] # cp Makefile.AP2 Makefile
☞ …/mod_fastcgi] # make top_dir=/usr/lib/httpd install
√ “/usr/lib/httpd/modules/” 에 “mod_fastcgi.so“ 생성 확인
5-3) FastCGI에서 Unix socket 파일들을 저장하기 위한 디렉토리 생성 및 권한 설정
☞ …] # mkdir -p /etc/httpd/fastcgi
☞ …] # chmod 777 /etc/httpd/fastcgi
6) httpd 환경 설정
6-1) '/etc/httpd/conf/httpd.conf' 파일 수정
1> 아래 Line을 "Dynamic Shared Object(DSO) Support" section에 추가
: LoadModule fastcgi_module modules/mod_fastcgi.so
2> 아래 Line들을 “ScriptAlias /cgi-bin/" Line 바로 뒤에 추가
: ScriptAlias /fcgi-bin/ "/var/www/fcgi-bin/"
: FastCgiIpcDir /etc/httpd/fastcgi
3> 아래 Line들을 “<Directory "var/www/cgi-bin” ‘section’ 뒤에 추가
: <Directory "/var/www/fcgi-bin">
: AllowOverride None
: Options +ExecCGI -Includes
: SetHandler fastcgi-script
: Order allow, deny
: Allow from all
: </Directory>
: Addhandler fastcgi-script fcgi
4> DocumentRoot의 값을 아래와 같이 변경
: DocumentRoot "/"
5> 주석부분 “# This should be changed to whatever you set DocumentRoot to."아래의
값을 아래 Line과 같이 수정수정
: <Directory "/">
7) Besim 동작 test
7-1-1) apache(httpd) restart
☞ …] # service httpd restart
7-1-2) '/web2005-1.20/Besim/'에서, 'test_besim_bank.pl' 실행. 아래 command 입력.
☞ …/Besim] # perl test_besim_bank.pl http://<BesimIPaddress>:81/fcgi-bin/besim_fcgi.fcgi/
7-2) 브라우저를 통하여, ‘http://<BesimIPaddress>:81/fcgi-bin/besim_fcgi.fcgi/’ 접속
√ 아래와 같은 page 출력 확인
※ 에러가 발생한다면, 아래의 명령어로, message를 추적하여 수정할 것. Besim의 경우, httpd의
error message를 통해서, 쉽게 문제점 추적이 가능함
☞ …] # tail -f /etc/httpd/logs/access_log
☞ …] # tail -f /etc/httpd/logs/error_log
※ Besim의 httpd 환경설정 파일을 http://nclab.tistory.com/ 에서 다운로드 받을 수 있음
⓷ Client 설치
1) 1.에서 Client 및 Prime Client를 설치: '/web2005-1.20/' 디렉토리에 설치됨
2) '/web2005-1.20/Harness/'에 있는 base 환경설정 파일들을 아래 command로 복사하여, 사용
√ 각 환경파일들을 이용하여, SPECweb이 구동됨.
☞ …/Harness] # cp SPECweb_Banking.Unix-PHP.config SPECweb_Banking.config
☞ …/Harness] # cp SPECweb_Ecommerce.Unix-PHP.config SPECweb_Ecommerce.config
☞ …/Harness] # cp SPECweb_Support.Unix-PHP.config SPECweb_Support.config
☞ …/Harness] # cp Test.Unix-PHP.config Test.config
3) 위 복사한 파일들을 이용하여, SPECweb 옵션을 변경할 수 있음.
4) Test.config 필수 설정
√ CLIENTS = <client IP address>
√ SIMULTANEOUS_SESSIONS = <원하는 값>
※ &를 이용하여, 원하는 workload양과 순서 조절 가능.
예> 100&500&200 : 100, 500, 200의 순서로, Runtime동안 workload 할당
※ <최소>-최대>x<step level>을 이용하여, 원하는 Step level단위로 workload 조절가능
예> 100-200x50 : 100, 150, 200 의 순서로, Runtime동안 workload 할당
√ TEST_TYPE=SPECweb_<원하는 workload<
: 이후의 내용은 Banking을 기준으로 함 -> SPECweb_Banking
√ WEB_SERVER = <web server IP address>
√ BESIM_SERVER = < Besim IP address>
√ BESIM_PORT = 81
√ BESIM_INIT_SCRIPT = "/var/www/fcgi-bin/besim_fcgi.fcgi" # FCGI
√ SMARTY_DIR = "/var/www/html/Smarty-2.6.7/libs/"
√ SMARTY_BANK_DIR = "/var/www/html/bank/"
√ SMARTY_ECOMMERCE_DIR = "/var/www/html/ecommerce/"
√ SMARTY_SUPPORT_DIR = "/var/www/html/support/"
5) SPECweb_Bankig.config 필수 설정
√ IMG_PATH = "/bank/images"
√ DYN_SCRIPT_PATH = "/bank/"
√ PADDING_DIR = "/var/www/html/bank/dynamic_padding/"
√ CHECK_IMAGE_DIR = "/var/www/html/bank/images/"
6) Client 동작 test
√ Ping을 이용하여, Server, Besim과의 network 연결상태 확인
7) Client 및 Prime client 동작 명령 ( terminal 2개 필요)
7-1) client
☞ …/Harness] # java -jar specwebclient.jar
7-2) Prime client
☞ …/Harness] # java -jar specweb.jar
※ 에러가 발생한다면, ‘Test.config’ 파일내의 ‘DEBUG_LEVEL’에 10을 할당한다. 그 후, Client 와 Prime client를 다시 실행시키면, 상세한 실행과정이 출력된다. 이 과정의 message를 통하
여 에러의 원인을 비교적 쉽게 알아낼 수 있다.
▣ SPECweb2005 구동
▷ 구동 절차
1) Web server에서, Apache(httpd) 시작
☞ …] # service httpd start
2) Besim에서, Apahce(httpd) 시작
☞ …] # service httpd start
3) Client에서, Client 실행
☞ …/Harness] # java -jar specwebclient.jar
4) Client에서, Prime client 실행
☞ …/Harness] # java -jar specweb.jar
▷ Tip
1) Test.config 주요변수 설명
√ SIMULTANEOUS_SESSIONS : 동작시킬 thread 수, 높을수록 더 많은 부하 발생
√ TEST_TYPE=SPECweb_Banking : 'SPECweb_Banking.config'파일을 이용하여, Simulate
√ THREAD_RAMPUP_SECONDS : SPECweb2005는 SIMULTANEOUS_SESSIONS값까지 thread수를
끌어 올린 후, Simulation을 시작한다. 이 값은 thread를 끌어올리는데 걸리는 시간이다. 이 값이
클수록 서서히 thread를 증가시켜 최대값에 이르고, 작을수록 짧은 급격히 thread를 증가시켜 최대
값에 이른다.
√ THREAD_RAMPDOWN_SECONDS : TREAD_RAMPUP_SECONDS와 반대되는 값이다.
√ DEBUG_LEVEL : Prim client 실행시, 출력되는 정보의 세부정도를 결정하는 변수. 클수록 더 상세함.
√ RUN_SECONDS : 실제 Simulation 실행 시간. 초 단위.
√ ITERATIONS : Simulation의 반복 수.
2) SPECweb_Banking.config 주요변수 설명
√ THINK_TIME : request를 요청하는 interval.
√ USE_SSL : SSL을 사용 여부 결정. SPECweb에서 제공하는 문서(SPECweb2005_Design.html) 참조.
▣ 발생할 수 있는 오류
1) incorrec id password page 출력
원인 : Besim이 정상적으로 설치 되지 않았을 경우, 이러한 현상 발생.
해결책 : 위의 Besim 설치부분을 참고하여, Besim 재설치
2) ‘too many open files’ message 출력
원인 : 제한된 file수로 인해 발생
해결책 : ulimit를 이용하여 제한 변경.
☞ …] # ulimit -a >> 정보 출력
☞ …] # ulimit -s [값] >> stack size 변경
항상 적용되기 위해서, 사용된 명령어를 쉘 스크립트에 추가, “/root/.bashrc”
3) 'Exceeded allowed max thinktime …' message 출력
원인 : workload의 양이 server가 감당할 수 없을 정도로 많을 경우, 발생.
해결책 : Test.config에서, SIMULTANEOUS_SESSIONS값을 줄이거나,
SPECweb_Banking.config에서, THINK_TIME값을 늘려준다.
'SPECweb2005' 카테고리의 다른 글
v_1.01_SPECweb2005 Install & Configure Guide in Linux(fedora 13) (80) | 2011.06.24 |
---|---|
SPECweb2005 설치과정 (1) | 2011.01.26 |
SPECweb2005 - 웹 환경 벤치마킹 툴 (0) | 2011.01.26 |