Nginx 는 웹 벤 치 를 사용 하여 압력 테스트 를 한다.

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

압력 테스트 를 실시 하여 200 시 를 병발 하 다.
# webbench -c 200 -t 60 http://down.chinaz.com/index.php

매개 변수 설명: - c 는 병발 수, - t 는 시간 (초)
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://down.chinaz.com/index.php
200 clients, running 60 sec.
Speed=1454 pages/min, 2153340 bytes/sec.
Requests: 1454 susceed, 0 failed.

동시 다발 200 시 사이트 방문 속도 가 정상 적 이다.
동시 다발 800 시
#webbench -c 800 -t 60 http://down.chinaz.com/index.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://down.chinaz.com/index.php
800 clients, running 60 sec.
Speed=1194 pages/min, 2057881 bytes/sec.
Requests: 1185 susceed, 9 failed.

동시 접속 이 800 일 때 사이트 방문 속도 가 약간 느리다.
병발 1600 시
#webbench -c 1600 -t 60 http://down.chinaz.com/index.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://down.chinaz.com/index.php
1600 clients, running 60 sec.
Speed=1256 pages/min, 1983506 bytes/sec.
Requests: 1183 susceed, 73 failed.

동시 접속 이 1600 이 되 었 을 때 사이트 의 방문 속 도 는 매우 느 렸 다.
동시 다발 2000 시
#webbench -c 2000 -t 60 http://down.chinaz.com/index.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://down.chinaz.com/index.php
2000 clients, running 60 sec.
Speed=2154 pages/min, 1968292 bytes/sec.
Requests: 2076 susceed, 78 failed.

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

좋은 웹페이지 즐겨찾기