Nginx 응용 사례 공유: 스트레스 테스트

운영 업무 에서 압력 테스트 는 매우 중요 한 일이 다.예 를 들 어 한 사이트 가 출시 되 기 전에 얼마나 많은 방 문 량 을 견 딜 수 있 는 지, 큰 방 문 량 상황 에서 성능 이 어떤 지, 이런 데이터 지표의 좋 고 나 쁨 은 사용자 체험 에 직접적인 영향 을 줄 것 이다.
그러나 압력 테스트 에서 하나의 공통점 이 존재 한다. 그것 은 바로 압력 테스트 결과 가 실제 부하 결과 와 완전히 같 지 않 고 압력 테스트 작업 을 아무리 잘 해도 100% 와 온라인 성능 지표 가 같다 고 보장 할 수 없다 는 것 이다.이런 문제 에 직면 하여 우 리 는 가능 한 한 방법 을 강구 하여 모 의 할 수 밖 에 없다.그래서 스트레스 테스트 는 매우 필요 하 다. 이런 데이터 가 있 으 면 우 리 는 자신 이 유지 하 는 플랫폼 에 대해 자신 이 알 고 있 는 것 을 할 수 있다.
현재 비교적 흔히 볼 수 있 는 사이트 압력 테스트 도 구 는 웹 벤 치, ab (apache bench), tcpcopy, loadrunner 가 있다.
소프트웨어 이름
간단 한 소개
장단 점
webbench
Lionbridge 회사 에서 개발 하여 매 초 요청 수 와 매 초 데이터 전송 량 을 테스트 하 는 동시에 정적, 동적, SSL 을 지원 합 니 다.
 
배치 가 간단 하고 정적 동 태 는 모두 테스트 할 수 있다.소형 사이트 압력 테스트 에 적용 (단 례 최대 3 만 병발 시 뮬 레이 션 가능)
ab(apache bench)
Apache 자체 압력 테스트 도구, 주요 기능 테스트 사이트 매 초 처리 요청 개수
 
정적 압력 테스트 에 많이 사용 되 고 기능 이 약 하 며 비 전문 적 인 압력 테스트 도구 입 니 다.
tcpcopy
바 텀 응용 요청 복 제 를 바탕 으로 각종 온라인 요청 을 테스트 서버 에 전송 할 수 있 고 분포 식 압력 테스트 기능 을 가 지 며 테스트 데이터 와 실제 생산 데이터 가 비교적 가깝다.
후발 주자, 주로 중대 형 압력 테스트 에 사용 되 며, tcp 기반 패 킷 은 모두 테스트 할 수 있 습 니 다.
loadrunner
압력 테스트 계 의 태 두 는 가상 사용 자 를 만 들 수 있 고 사용자 의 실제 방문 절 차 를 모 의 하여 스 크 립 트 를 녹음 할 수 있 으 며 테스트 결과 도 가장 진실 하 다.
시 뮬 레이 션 이 가장 실 감 나 고 독립 적 인 유닛 테스트 를 할 수 있 지만 배치 배치 가 복잡 하기 때문에 전문가 가 필요 합 니 다.
다음은 웹 벤 치 를 예 로 들 어 사이트 가 출시 되 기 전에 스트레스 테스트 를 어떻게 하 는 지 설명 한다.
웹 벤 치 설치
 

  
  
  
  
  1. #wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz  
  2. #tar zxvf webbench-1.5.tar.gz  
  3. #cd webbench-1.5  
  4. #make && make install 

압력 테스트 를 진행 하 다
동시 다발 200 시
 

  
  
  
  
  1. # webbench -c 200 -t 60 http://blog.luwenju.com/index.php 

매개 변수 설명: - c 는 병발 수, - t 는 시간 (초)
 

  
  
  
  
  1. Webbench - Simple Web Benchmark 1.5  
  2. Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.  
  3. Benchmarking: GET http://blog.luwenju.com/index.php  
  4. 200 clients, running 60 sec.  
  5. Speed=1454 pages/min, 2153340 bytes/sec.  
  6. Requests: 1454 susceed, 0 failed. 

동시 다발 200 시 사이트 방문 속도 가 정상 적 이다.
동시 다발 800 시
 

  
  
  
  
  1. #webbench -c 800 -t 60 http://blog.luwenju.com/index.php  
  2. Webbench - Simple Web Benchmark 1.5  
  3. Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.  
  4. Benchmarking: GET http://blog.luwenju.com/index.php  
  5. 800 clients, running 60 sec.  
  6. Speed=1194 pages/min, 2057881 bytes/sec.  
  7. Requests: 1185 susceed, 9 failed. 

동시 접속 이 800 일 때 사이트 방문 속도 가 약간 느리다.
병발 1600 시
 

  
  
  
  
  1. #webbench -c 1600 -t 60 http://blog.luwenju.com/index.php  
  2. Webbench - Simple Web Benchmark 1.5  
  3. Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.  
  4. Benchmarking: GET http://blog.luwenju.com/index.php  
  5. 1600 clients, running 60 sec.  
  6. Speed=1256 pages/min, 1983506 bytes/sec.  
  7. Requests: 1183 susceed, 73 failed. 

동시 접속 이 1600 이 되 었 을 때 사이트 의 방문 속 도 는 매우 느 렸 다.
동시 다발 2000 시
 

  
  
  
  
  1. #webbench -c 2000 -t 60 http://blog.luwenju.com/index.php  
  2. Webbench - Simple Web Benchmark 1.5  
  3. Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.  
  4. Benchmarking: GET http://blog.luwenju.com/index.php  
  5. 2000 clients, running 60 sec.  
  6. Speed=2154 pages/min, 1968292 bytes/sec.  
  7. Requests: 2076 susceed, 78 failed. 

2000 이 동시에 발생 하면 사이트 에 '502 Bad Gateway' 가 나타 나 는데 이 를 통 해 웹 서버 가 사용자 의 방문 요청 을 처리 할 수 없 음 을 알 수 있다.
요약:
1. 스트레스 테스트 작업 은 제품 이 출시 되 기 전에 해 야 지 출시 된 후에 해 서 는 안 된다.
2. 테스트 시 내부 네트워크 가 아 닌 공공 네트워크 를 통 해 진행
3. 테스트 할 때 병발 은 작은 것 에서 점점 커 져 야 한다. 예 를 들 어 병발 100 시 에 사이트 의 부하 가 얼마 인지, 열 리 는 절차 가 있 는 지, 병발 200 시 에 얼마 인지, 사이트 가 느리게 열 릴 때 병발 하 는 것 이 얼마 인지, 사이트 가 열 리 지 않 을 때 병발 하 는 것 이 얼마 인지 관찰 해 야 한다.
4、 B2C 사 이 트 는 쇼핑 카 트, 홍보 페이지 등 을 테스트 하 는 데 중심 을 두 어야 한다. 왜냐하면 이런 페이지 가 전체 사이트 의 방 문 량 에서 차지 하 는 비중 이 비교적 크기 때문이다.

좋은 웹페이지 즐겨찾기