첨부 : 1) 원본문서(hwp,pdf)
2) Besim httpd 환경설정 파일(httpd.conf_Besim)


SPECweb2005 Install & Configure Guide in Linux(fedora 13)

Version #

작성일

작성자

E-mail

설명

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) ScriptApache(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_SESSIONSSection 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' 정독!

우리는 fcgiPHP를 사용할 것임

 

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

Besimhttpd 환경설정 파일을 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 : SPECweb2005SIMULTANEOUS_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값을 늘려준다.

 

 

 

 

 

New Post