(총괄) 웹 성능 압력 테스트 도구 의 ApacheBench (ab) 상세 설명

PS: 사이트 성능 압력 테스트 는 성능 개선 과정 에서 없어 서 는 안 될 일환 입 니 다.서버 를 고압 적 인 상황 에 처 하 게 해야만 각종 설정 이 노출 된 문 제 를 진정 으로 나 타 낼 수 있다.Apache 에는 ab 라 는 프로그램 이 있 습 니 다. Apache 나 다른 유형의 서버 에 웹 사이트 방문 압력 테스트 를 할 수 있 습 니 다.
ApacheBench 명령 원리:
ab 명령 은 여러 방문 자가 동시에 URL 주 소 를 방문 하 는 것 을 모 의 하 는 동시 접근 스 레 드 를 많이 만 듭 니 다.이 테스트 목 표 는 URL 기반 이기 때문에 아파 치 의 부하 압력 을 테스트 할 수도 있 고 nginx, lighthttp, tomcat, IIS 등 다른 웹 서버 의 압력 을 테스트 할 수도 있다.
ab 명령 은 부하 가 있 는 컴퓨터 에 대한 요구 가 낮 습 니 다. 높 은 CPU 를 차지 하지 도 않 고 많은 메모 리 를 차지 하지 도 않 지만 대상 서버 에 커 다란 부하 가 될 수 있 습 니 다. 그 원 리 는 CC 공격 과 유사 합 니 다.자신의 테스트 사용 에 도 주의해 야 한다. 그렇지 않 으 면 한 번 에 너무 많은 부하 가 발생 하여 목표 서버 가 자원 소모 로 인해 심각 할 때 심지어 다운 될 수 있다.
ApacheBench 사용법 설명:
Linux 시스템 에 서 는 일반적으로 아파 치 를 설치 한 후 직접 실행 할 수 있다# ab -n 4000 -c 1000 http://www.ha97.com/
Win 시스템 에서 cmd 명령 행 창 을 열 면 cd 는 apache 설치 디 렉 터 리 의 bin 디 렉 터 리 에 있 습 니 다.
- n 뒤의 4000 대 표 는 모두 4000 개의 요청 을 보 냅 니 다. -c 뒤의 1000 은 1000 개의 동시 다발 (1000 명 동시 방문 시 뮬 레이 션) 을 사용 하고 뒤의 사이트 주 소 는 테스트 대상 URL 을 표시 합 니 다.
잠시 후 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.
결과 분석:
This is ApacheBench, Version 2.3 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 192.168.80.157 (be patient) Completed 400 requests Completed 800 requests Completed 1200 requests Completed 1600 requests Completed 2000 requests Completed 2400 requests Completed 2800 requests Completed 3200 requests Completed 3600 requests Completed 4000 requests Finished 4000 requests
Server Software: Apache/2.2.15 Server Hostname: 192.168.80.157 Server Port: 80
Document Path: / phpinfo. php \ # 테스트 페이지 Document Length: 50797 bytes \ # 페이지 크기
Concurrency Level: 1000 \ # 테스트 의 병발 수 Time taken for tests: 11.846 seconds \ # 전체 테스트 지속 시간 Complete requests: 4000 \ # 완 료 된 요청 수량 Failed requests: 0 \ # 실패 한 요청 수량 Write errors: 0 Total transfered: 204586997 bytes \ # 전체 과정 에서 네트워크 전 송 량 HTML transfered: 203479961 bytes \ # 전체 과정 에서의 HTML 콘 텐 츠 전 송 량 Requests per second: 337.67 [\ # / sec] (mean) \ # 가장 중요 한 지표 중 하 나 는 LR 의 초당 사무 수 에 해당 하 며, 뒤의 괄호 에 있 는 mean 은 평균 값 Time per request: 2961.449 [ms] (mean) \ # 가장 중요 한 지표 중 하 나 는 LR 의 평균 사무 응답 시간 에 해당 한다.뒤에 괄호 안에 있 는 mean 은 평균 값 Time per request: 2.961 [ms] (mean, across all concurrent requests) \ # 연결 마다 실제 실행 시간 을 요청 하 는 평균 값 Transfer rate: 16866.07 [Kbytes / sec] received \ # 평균 초당 네트워크 데이터,네트워크 트 래 픽 이 너무 많아 응답 시간 이 길 어 지 는 문 제 를 제거 하 는 데 도움 을 줄 수 있 습 니 다. Connection Times (ms) min mean [+ / - sd] median max Connect: 0 483 1773.5 11 9052 Processing: 2 556 1459.1 255 11763 Waiting: 1 515 1459.8 220 11756 Total: 139 1039 2296.6 275 11843 \ # 네트워크 에서 소모 되 는 시간의 분해,각 데이터 의 구체 적 인 알고리즘 은 아직 명확 하지 않다.
Percentage of the requests served within a certain time (ms) 50% 275 66% 298 75% 328 80% 373 90% 3260 95% 9075 98% 9267 99% 11713 100% 11843 (longest request) \ # 전체 장면 에서 모든 요청 의 응답 상황.장면 에서 모든 요청 에 응답 시간 이 있 는데 그 중에서 50% 의 사용자 응답 시간 은 275 밀리초 보다 적 고 66% 의 사용자 응답 시간 은 298 밀리초 보다 적 으 며 최대 응답 시간 은 11843 밀리초 보다 적다.병발 요청 에 대해 cpu 는 실제 적 으로 동시에 처리 하 는 것 이 아니 라 모든 요청 에 따라 얻 은 시간 편 에 따라 하나씩 돌아 가 며 처리 하기 때문에 기본적으로 첫 번 째 Time per request 시간 은 두 번 째 Time per request 시간 에 병발 요청 수 를 곱 하 는 것 과 같다.
요약: 원 격 으로 웹 서버 에 대해 압력 테스트 를 하면 효과 가 이상 적 이지 않 습 니 다 (네트워크 지연 이 너무 커서). 내부 네트워크 의 다른 서버 나 여러 대의 서버 를 사용 하여 내부 네트워크 를 통 해 테스트 하 는 것 을 권장 합 니 다. 이렇게 얻 은 데 이 터 는 정확도 가 매우 높 습 니 다.단독 서버 만 있 으 면 원 격 테스트 보다 직접 로 컬 테스트 를 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기