AB는 ApacheBench의 약자입니다.
ab 명령어는 여러 방문자가 동시에 URL 주소에 접근하는 것을 시뮬레이션하기 위해 여러 동시 접근 스레드를 생성합니다. 테스트 대상은 URL 기반이므로, 아파치 부하 부담과 nginx, lighthttp, tomcat, IIS 등 웹 서버 스트레스 모두를 테스트할 수 있습니다.
ab 명령어는 부하를 내는 컴퓨터에 대한 요구사항이 낮고, CPU나 메모리를 많이 차지하지 않습니다. 하지만 대상 서버에 엄청난 부하를 주며, 그 원리는 CC 공격과 유사합니다. 또한 직접 테스트하고 사용하는 데 신경 써야 합니다. 그렇지 않으면 한꺼번에 너무 많은 부하가 생길 수 있습니다. 이로 인해 대상 서버가 자원을 고갈할 수 있고, 심한 경우 크래시까지 발생할 수 있습니다.
1. 아파치 벤치 소개
ApacheBench는 Apache 서버(약칭 ab)에 기본으로 제공되는 웹 스트레스 테스트 도구입니다. AB는 또한 페이로드 시작 시 네이티브 요구가 낮은 명령줄 도구이며, AB 명령어에 따라 여러 방문자가 동시에 특정 URL 주소에 접근하는 것을 시뮬레이션하는 여러 동시 액세스 스레드를 생성할 수 있어 대상 서버의 부하 압력을 테스트하는 데 사용할 수 있습니다. 일반적으로 AB 도구는 작고 단순하며 빠르게 학습할 수 있고 필요한 기본 성과 지표를 제공할 수 있지만, 그래픽 결과는 없으며 모니터링이 불가능합니다.
2. 아파치 벤치 설치
먼저, Apache 서버를 설치하고 주소를 다운로드해야 합니다:하이퍼링크 로그인이 보입니다.,
제 컴퓨터는 윈도우 10 64비트 시스템이라 "httpd-2.4.33-win64-VC15.zip"을 다운로드했습니다., 링크:하이퍼링크 로그인이 보입니다.
구버전 ab는 -r 매개변수를 지원하지 않으므로, 최신 버전을 다운로드하는 것이 권장됩니다.
3. 아파치 벤치 사용
매개변수를 이해하세요
매개변수 설명: 형식: ab [옵션] [http://]hostname[:p ort]/경로
-n 요청 수행 요청 수 //이 테스트에서 시작된 총 요청 수 -c 동시성 요청 수 // 한 번에 생성되는 요청(또는 동시성 요청) 수 -최대 시간 제한 초. 응답 대기 //테스트가 기본적으로 수행되는 최대 초 수입니다. -r 소켓에서 종료하지 마세요, 수신 오류. 테스트 작업을 계속하려면 예외를 던집니다 -p postfile 파일을 POST 파일을 포함 // POST가 필요한 데이터를 포함하는 파일 형식(예: "p1=1&p2=2"). 사용 방법은 -p 111.txt
-T 콘텐츠-타입 POSTing용 콘텐츠-타입 헤더 POST 데이터에 사용되는 Content-type 헤더, 예를 들어 -T "application/x-www-form-urlencoded". (코-P) -과장한 글 문제 해결 정보를 얼마나 출력해야 할까요? 정보를 표시할 수 있도록 세부 수준을 설정하세요 – 4 이상이면 헤더 정보를 보여주고, 3 이상이면 응답 코드(404, 200 등), 2 이상은 경고 및 기타 정보를 표시합니다. -V는 버전 번호를 표시하고 종료합니다. -C 속성 쿠키 추가, 예를 들어 -C "c1=1234,c2=2,c3=3" (반복 가능) -C cookie-name=value 요청: 라인에 쿠키를 추가하세요. 일반적인 형태는 이름=값인 매개변수 쌍입니다. 이 매개변수는 쉼표로 나누어 반복할 수 있습니다. 팁: 세션 구현 원칙을 사용해 세션 유지 기능을 달성하기 위해 JSESSIONID 매개변수를 전달할 수 있습니다. 예를 들어 -C "c1=1234, c2=2, c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8". -w 출력하면 HTML 테이블 // 출력은 HTML 테이블 형식으로 나옵니다. 기본적으로 흰색 배경에 두 열 너비의 테이블입니다. -GET 대신 HEAD -x 속성 String을 테이블 속성으로 삽입할 수 있습니다 -y 속성 tr 속성으로 삽입할 String -z 속성 td 또는 th 속성으로 삽입할 String -H 속성 임의의 헤더 라인 추가, 예를 들어 'Accept-Encoding: gzip' 모든 일반 헤더 라인 뒤에 삽입됨. (반복 가능) - 속성 기본 WWW 인증 추가, 속성 콜론이 분리된 사용자 이름과 비밀번호입니다. -P 속성 기본 프록시 인증 추가, 속성은 콜론으로 분리된 사용자 이름과 비밀번호입니다. -X 프록시:포트 프록시서버 및 사용할 포트 번호 -V 버전 번호 인쇄 및 종료 -k HTTP Keep Alive 기능 사용하세요 -d 서브드 백분위수는 표 표시하지 마세요. -S: 자신감을 보여주지 마세요, 추정치와 경고. -g 파일명 수집된 데이터를 gnuplot 형식 파일로 출력합니다. -e 파일명 출력 CSV 파일 -h 사용 정보 표시 (이 메시지) 매개변수는 다양하며, 일반적으로 -c와 -n 매개변수를 사용할 수 있습니다. 예를 들어:
"httpd-2.4.33-win64-VC15.zip"을 압축 해제하고 \Apache24\bin으로 가서 명령어 라인으로 실행하세요, 아래 그림에서 볼 수 있습니다:
SSL이 컴파일되지 않았고; https 지원 없음: SSL이 컴파일되지 않음; https 지원이 없어서 웹사이트가 https를 지원하지 않는다는 뜻입니다.
검사 결과:
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 https://www.itsvse.com SSL이 컴파일되지 않았고; https 지원은 없습니다
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 http://www.itsvse.com/ 여기는 ApacheBench, 버전 2.3 <$Revision: 1826891 $> 저작권 1996 아담 트위스, 제우스 테크놀로지 주식회사,하이퍼링크 로그인이 보입니다. Apache Software Foundation에 라이선스됨,하이퍼링크 로그인이 보입니다.
벤치마킹www.itsvse.com(참아라) 100건의 요청 완료 완료된 요청 200건 300건의 요청 완료 400건의 요청 완료 500건의 요청 완료 600건의 요청 완료 700건의 요청 완료 800건의 요청 완료 900건의 요청 완료 완료된 1000건의 요청 1000건의 요청을 완료했습니다
서버 소프트웨어: 서버 호스트네임: www.itsvse.com 서버 포트: 80
문서 경로: / 문서 길이: 178바이트
동시성 수준: 10 검사 소요 시간: 44.916초 전체 요청: 1000건 실패 요청: 0 2xx가 아닌 답변: 1000 총 전송 횟수: 349000바이트 HTML 전송: 178000바이트 초당 요청 수: 22.26 [#/초] (평균) 요청당 시간: 449.164 [ms] (평균) 요청당 시간: 44.916 [ms] (모든 동시 요청을 합치한 평균) 전송 속도: 수신 7.59 [Kbytes/sec]
연결 시간 (ms) 최소 평균[+/-SD] 중앙값 최대값
Connect: 32 45 60.1 37 1439
Processing: 35 401 185.6 356 1795
Waiting: 34 245 199.6 228 1791
Total: 69 446 195.4 397 1830
일정 시간 내에 처리된 요청의 비율(ms) 50% 397 66% 415 75% 439 80% 461 90% 535 95% 623 98% 1563 99% 1784 100% 1830 (가장 긴 요청) 매개변수 분석:
문서 경로: 테스트 페이지 문서 길이: 페이지 크기 동시성 수준: 동시성 테스트된 동시성 횟수입니다 시험 소요 시간: 전체 시험 시간 완료 요청: 완료된 요청 수입니다 실패한 요청: 실패한 요청의 수입니다 쓰기 오류: 0 총 전송: 과정 전반에 걸쳐 전송된 네트워크의 양 전송된 HTML 전송: 과정 전반에 걸쳐 전송된 HTML 콘텐츠의 양 초당 요청: LR에서 초당 거래량과 동등한 가장 중요한 지표 중 하나이며, 괄호 안의 평균은 이것이 평균임을 나타냅니다 요청당 시간: LR의 평균 트랜잭션 응답 시간과 같은 두 가지 가장 중요한 지표는 괄호 안에서 평균 평균임을 나타냅니다 요청당 시간: 각 연결 요청의 실제 실행 시간의 평균값 전송 속도: 네트워크 내 초당 평균 트래픽으로, 과도한 네트워크 트래픽이 긴 응답 시간을 유발하는 문제를 배제하는 데 도움이 됩니다
|