간만에 업무관련 포스팅 해보자..
web polygraph 설치를 많은 삽질 끝에...성공했다.
polygraph를 사용하는 이용는 웹 캐시 프로그램인 squid 성능 테스트 하기 위함이다.
테스트 사양
poly 서버, 클라인언트
polygraph ver : 3.0.6
cpu : 쿼드코어
ram : 4GB
hdd : 500GB
OS : freebsd
squid 서버
squid ver : 2.0.6-STABLES
cpu : 듀얼코어
ram : 2GB
hdd : 250GB
OS : centos 5
polygraph 사이트 : http://www.web-polygraph.org/ 이곳에서 모든 설정을 참고 할 수 있고
http://www.measurement-factory.com/docs/WebAxe-4/이곳에서도 쉽게 설정할 수 있도록 잘 설명 되어있다.
squid 사이트 : http://www.squid-cache.org
polygraph의 운영은 pg 파일에 따라 각각 운영 방식이 틀려진다. 내가 시도 해본것은 webaxe-4.pg와 polymix-4.pg였는데 polymix-4.pg는 dns세팅까지 해야 하는 복잡함 때문에 webaxe-4.pg를 이용하여 설치를 하였다. webaxe-4방식은 웹을 생성해서 url요청을 squid쪽에 보내는 방식이다. 자세한건 문서에도 잘 나와있기에 꼼꼼하게 읽어서 설치하면 될 것이다.
설치해야 할 프로그램
처음에 해야 할 것은 클라이언트, 서버, squid 각각에 경로를 추가해줘야 한다. webaxe는 클라이언트만 가상 ip를 생성해주기만 하면된다.
#!/bin/sh
X=10
p=1
while test $p -lt 32; do
j=`expr \( $p - 1 \) \* 4`
c=`expr $p + 60`
route add -net 10.$X.$j.0/22 172.16.$X.$c
p=`expr $p + 1`
done
위 와 같이 각각의 시스템에 쉘 스크립트를 생성해 주면된다. (172.16 은 사설 ip대역)
다음에 할 것은
클라이언트에 루프백 인터페이스에 가상 ip를 추가해준다. 추가를 해야만 가상ip를 통해 실제 ip로 연결 할 수 있다. 즉 실제 ip는 라우터 역할을 하는 것이다.
ifconfig lo0 alias 10.10.0.1 netmask 255.255.192.0
다음에는 netperf를 이용해 클라이언트, 서버 간 통신 테스트를 해본다. 적정 속도는 80Mbit/s라고 한다.
다음은 /workloads/webaxe-4.pg파일을 수정하여 자신이 원하는 값을 넣어주면된다.
TheBench.client_side.addr_space = [ 'lo0::10.10.0.1-250/22' ]; <- 클라이언트 가상IP대역
TheBench.client_side.hosts = [ '172.16.10.61' ]; <- 클라이언트 실제 IP주소
TheBench.server_side.hosts = [ '172.16.10.191:80' ]; <- 서버 실제 IP주소
TheBench.proxy_side.hosts = [ '172.16.X.32:80' ]; <- squid IP주소
TheBench.peak_req_rate = 1000/sec; <- 초당 peak 요청 율
rate FillRate = 75% * TheBench.peak_req_rate;
size ProxyCacheSize = 50GB + 4GB; < 캐시 디스크 용량 과 메모리 용량
size ProxyCacheSize = 50GB + 4GB;
size WSS = 1GB; <- 이건 그냥 안건드렸다.
webaxe-4.pg는 간단하게 되있어서 원하는 값을 바꾸기만 하면 된다.
문서에서는 방화벽을 설정을 해야한다고 했는데 freebsd 방화벽 설정은 꽤 까다롭다. 커널 컴파일까지 해야 하기 때문에 시간이 충분치 않기 때문에 무시했다.
이렇게 설정이 끝났으면 서버와 클라이언트간 잘 작동하는지 테스트 해보자. 여기서 테스트 하기 전..
몇개 더 설정해야 할께 있다.
webaxe-4.pg 과 webaxe-4-guts.pg #include 부분에 경로 설정을
/usr/local/polygraph/workloads/include < 이런식으로 앞부분에 추가 해줘야 제대로 인식한다.
그리고..
webaxe-4-guts.pg 파일안에 68라인 origins = Map.names; <- 이부분을 origins = S.addresses; 로 바꿔줘야 제대로 작동한다.
그럼 모든 설정은 다 끝났다..실행을 해보자.
(이때에는 단지 서버, 클라이언트 테스트이다. squid를 바이패스해야한다.)
./polysrv --config /usr/local/polygraph/workloads/webaxe-4.pg --verb_lvl 10
./polyclt --config /usr/local/polygraph/workloads/webaxe-4.pg --verb_lvl 10 --ports 3000:3000
여기서 값이 에러 없이 제대로 올라간다면 성공한 것이다.
다음은 squid 추가
squid 서버에 LAN을 연결 이후
./polysrv --config /usr/local/polygraph/workloads/webaxe-4.pg --verb_lvl 10
./polyclt --config /usr/local/polygraph/workloads/webaxe-4.pg --verb_lvl 10 --proxy 192.168.10.10:3128
squid 서버와 포트를 추가해 주면된다.
web polygraph 설치를 많은 삽질 끝에...성공했다.
polygraph를 사용하는 이용는 웹 캐시 프로그램인 squid 성능 테스트 하기 위함이다.
테스트 사양
poly 서버, 클라인언트
polygraph ver : 3.0.6
cpu : 쿼드코어
ram : 4GB
hdd : 500GB
OS : freebsd
squid 서버
squid ver : 2.0.6-STABLES
cpu : 듀얼코어
ram : 2GB
hdd : 250GB
OS : centos 5
polygraph 사이트 : http://www.web-polygraph.org/ 이곳에서 모든 설정을 참고 할 수 있고
http://www.measurement-factory.com/docs/WebAxe-4/이곳에서도 쉽게 설정할 수 있도록 잘 설명 되어있다.
squid 사이트 : http://www.squid-cache.org
polygraph의 운영은 pg 파일에 따라 각각 운영 방식이 틀려진다. 내가 시도 해본것은 webaxe-4.pg와 polymix-4.pg였는데 polymix-4.pg는 dns세팅까지 해야 하는 복잡함 때문에 webaxe-4.pg를 이용하여 설치를 하였다. webaxe-4방식은 웹을 생성해서 url요청을 squid쪽에 보내는 방식이다. 자세한건 문서에도 잘 나와있기에 꼼꼼하게 읽어서 설치하면 될 것이다.
설치해야 할 프로그램
처음에 해야 할 것은 클라이언트, 서버, squid 각각에 경로를 추가해줘야 한다. webaxe는 클라이언트만 가상 ip를 생성해주기만 하면된다.
#!/bin/sh
X=10
p=1
while test $p -lt 32; do
j=`expr \( $p - 1 \) \* 4`
c=`expr $p + 60`
route add -net 10.$X.$j.0/22 172.16.$X.$c
p=`expr $p + 1`
done
위 와 같이 각각의 시스템에 쉘 스크립트를 생성해 주면된다. (172.16 은 사설 ip대역)
다음에 할 것은
클라이언트에 루프백 인터페이스에 가상 ip를 추가해준다. 추가를 해야만 가상ip를 통해 실제 ip로 연결 할 수 있다. 즉 실제 ip는 라우터 역할을 하는 것이다.
ifconfig lo0 alias 10.10.0.1 netmask 255.255.192.0
다음에는 netperf를 이용해 클라이언트, 서버 간 통신 테스트를 해본다. 적정 속도는 80Mbit/s라고 한다.
다음은 /workloads/webaxe-4.pg파일을 수정하여 자신이 원하는 값을 넣어주면된다.
TheBench.client_side.addr_space = [ 'lo0::10.10.0.1-250/22' ]; <- 클라이언트 가상IP대역
TheBench.client_side.hosts = [ '172.16.10.61' ]; <- 클라이언트 실제 IP주소
TheBench.server_side.hosts = [ '172.16.10.191:80' ]; <- 서버 실제 IP주소
TheBench.proxy_side.hosts = [ '172.16.X.32:80' ]; <- squid IP주소
TheBench.peak_req_rate = 1000/sec; <- 초당 peak 요청 율
rate FillRate = 75% * TheBench.peak_req_rate;
size ProxyCacheSize = 50GB + 4GB; < 캐시 디스크 용량 과 메모리 용량
size ProxyCacheSize = 50GB + 4GB;
size WSS = 1GB; <- 이건 그냥 안건드렸다.
webaxe-4.pg는 간단하게 되있어서 원하는 값을 바꾸기만 하면 된다.
문서에서는 방화벽을 설정을 해야한다고 했는데 freebsd 방화벽 설정은 꽤 까다롭다. 커널 컴파일까지 해야 하기 때문에 시간이 충분치 않기 때문에 무시했다.
이렇게 설정이 끝났으면 서버와 클라이언트간 잘 작동하는지 테스트 해보자. 여기서 테스트 하기 전..
몇개 더 설정해야 할께 있다.
webaxe-4.pg 과 webaxe-4-guts.pg #include 부분에 경로 설정을
/usr/local/polygraph/workloads/include < 이런식으로 앞부분에 추가 해줘야 제대로 인식한다.
그리고..
webaxe-4-guts.pg 파일안에 68라인 origins = Map.names; <- 이부분을 origins = S.addresses; 로 바꿔줘야 제대로 작동한다.
그럼 모든 설정은 다 끝났다..실행을 해보자.
(이때에는 단지 서버, 클라이언트 테스트이다. squid를 바이패스해야한다.)
./polysrv --config /usr/local/polygraph/workloads/webaxe-4.pg --verb_lvl 10
./polyclt --config /usr/local/polygraph/workloads/webaxe-4.pg --verb_lvl 10 --ports 3000:3000
여기서 값이 에러 없이 제대로 올라간다면 성공한 것이다.
다음은 squid 추가
squid 서버에 LAN을 연결 이후
./polysrv --config /usr/local/polygraph/workloads/webaxe-4.pg --verb_lvl 10
./polyclt --config /usr/local/polygraph/workloads/webaxe-4.pg --verb_lvl 10 --proxy 192.168.10.10:3128
squid 서버와 포트를 추가해 주면된다.