서버 부하가 너무 커서 프로그램의 효율성에 영향을 미치는 것도 매우 흔한 일이므로 이를 테스트해야 합니다. 여기서는 가장 일반적으로 사용되는 Apache 서버를 예로 들어보겠습니다.
Apache 서버에는 bin 디렉터리에 AB(ApacheBench)라는 도구가 함께 제공됩니다. 이 경량 도구를 사용하면 서버 로드 테스트를 통해 서버가 과부하 상태에서 어떻게 작동하는지 확인할 수 있습니다. ApacheBench는 특정 URL에 대한 지속적인 온라인 요청을 시뮬레이션할 수 있으며 동시에 여러 개의 동일한 온라인 요청을 시뮬레이션할 수도 있습니다. 따라서 ApacheBench를 사용하면 웹 사이트 개발 중 실제 온라인 상황을 시뮬레이션하는 데 도움이 될 수 있으며 시뮬레이션된 데이터는 다음과 같이 사용됩니다. 서버 설정이나 절차를 조정하기 위한 기초입니다.
명령줄 출력:
./ab -n number_of_total_requests
-c 동시_요청 개수_개
http://your_web_server/your_php_app.php
예:
./ab -n 1000 -c 50 http://www.domain.com/myapp.php
AB는 http://www.domain.com/myapp 에도 보냅니다. .php 동시 요청 50개, 총 1000회 발행.
테스트 결과는 아마도 다음과 같을 것입니다:
서버 소프트웨어: Apache/2.0.16
서버 호스트 이름: localhost
서버 포트: 80
문서 경로: /myapp.php
문서 길이: 1311바이트
동시성 수준: 50
테스트 소요 시간: 8.794초
요청 완료: 1000
실패한 요청: 0
총 전송량: 1754000바이트
전송된 HTML: 1311000바이트
초당 요청: 113.71
전송 속도: 199.45kb/s 수신됨
연결 시간(ms)
최소 평균
연결: 0 0 5
처리: 111 427 550
총계: 111 427 555
myapp.php가 초당 처리할 수 있는 요청 수는 113.71입니다. 요청 수를 늘리고 서버가 더 큰 압력을 처리할 수 있는지 확인하십시오. 또한 httpd.conf의 MPM 모듈 선택에 따라 Apache의 MaxClients, ThreadsPerChild, MaxThreadsPerChild 및 기타 매개변수를 조정해야 합니다.
더 자세한 정보를 원하시면 www.apache.org에서 모듈 및 타사 생산성 도구를 포함한 심층적인 문서를 확인하세요. httpd.conf를 수정한 후 Apache 서버를 다시 시작한 다음 AB를 사용하여 테스트합니다. 초당 요청 수가 증가하거나 감소하는 것을 볼 수 있습니다.
매번 매개변수를 기록하고 마지막으로 효율성이 가장 좋은 구성을 선택합니다.
AB 외에도 우수한 서버 성능 테스트 소프트웨어가 많이 있다는 점을 지적해야 합니다. 또한, 귀하의 서버가 Apache가 아닌 경우에는 자신만의 테스트 방법을 찾아보시기 바랍니다.