2012.04.20 20:27
새로운 서버 또는 시스템 구축 후에 과연 이게 얼마나 버텨줄까 라는 의구심이 드는게 사실 입니다.
스펙이 아무리 좋아도 설정상의 문제가 있어 부하를 견디지 못하는 현상이 발생 할 수 있습니다.
예를 들어 apache session 설정이 낮게 되어 있어 자원은 남아있지만, 세션이 가득차서 장애가 발생하는 경우,Nginx 의 경우 core 개수를 지정하지 않아 4개의 core가 있음에도 1개의 코어만 사용해서 부하가 발생하는 경우 등등
위와 같은 미처 확인하지 못한 장애가 서비스를 시작한 이후에 발견 된다면, 참 난감한 일이 아닐 수 없습니다.
2편으로 나누어 부하 테스트 툴에 대한 포스팅을 진행 합니다.
1편 - 하드웨어 부하 테스트 툴
2편 - 웹 부하 테스트 툴 (ab)
1.하드웨어 부하 테스트 툴
Download
http://dag.wieers.com/rpm/packages/stress
위 url 에서 버전에 맞는 rpm 파일을 다운 받습니다.
Ex) Cent 5.x 32bit를 기준으로 작성
서버에서 직접 다운로드.
[hostway] /home/src > # wget http://pkgs.repoforge.org/stress/stress-1.0.2-1.el5.rf.i386.rpm
RPM 설치
[hostway] /home/src > # rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.i686.rpm
스트레스 tool 실행
[hostway] /home/src > # stress --cpu 2 --io 4 --vm 2 --hdd 1 --timeout 10s
백그라운드로 실행 후 확인 하려는 경우
[hostway] /home/src > # stress --cpu 2 --io 4 --vm 2 --hdd 1 --timeout 10s &
위 값을 조절해서 테스트 진행 하시기 바라며, 너무 큰 값을 넣게 되면 서버가 다운될 수 있으니 주의.
자세한 옵션 사용법은 info stress 참조.
스트레스 tool 사용법 및 설명
[hostway] /home/src > info stress
3 Example invocations
*********************
The simple case is that you just want to bring the system load average
up to an arbitrary value. The following forks 13 processes, each of
which spins in a tight loop calculating the sqrt() of a random number
acquired with rand().
% `stress -c 13'
Long options are supported, as well as is making the output less
verbose. The following forks 1024 processes, and only reports error
messages if any.
% `stress --quiet --cpu 1k'
To see how your system performs when it is I/O bound, use the -i
switch. The following forks 4 processes, each of which spins in a
tight loop calling sync(), which is a system call that flushes memory
buffers to disk.
% `stress -i 4'
Multiple hogs may be combined on the same command line. The
following does everything the preceding examples did in one command,
but also turns up the verbosity level as well as showing how to cause
the command to self-terminate after 1 minute.
% `stress -c 13 -i 4 --verbose --timeout 1m'
You can write a file of arbitrary length to disk. The file is
created with mkstemp() in the current directory, the default is to
unlink it, but unlinking can be overridden with the -hdd-noclean flag.
% `stress -d 1 --hdd-noclean --hdd-bytes 13'
Large file support is enabled.
% `stress -d 1 --hdd-noclean --hdd-bytes 3G'