실제로드 테스트를 수행하기 위해 서버에서 Apache 액세스 로그를 다시 재생하려면 어떻게해야합니까? 볼 수 없었습니다. 기존 JMeter 및 AB

HTTP 서버의로드 테스트 도구를 살펴 봤 습니까? 그러나 해당 도구에서 기존 로그를 재생하는 방법을 볼 수 없었습니다. 기존 JMeter 및 AB 테스트 항목에서 재현 할 수없는 특정로드 작업에서만 발생하는 버그가 있습니다.

도구에 access_logs를 지정하고 더 빠르거나 같은 속도로 재생하고 싶습니다.



답변

Jmeter의 액세스 로그 샘플러 구성 요소를 사용할 수 있습니다 .

이 PDF 에서 사용하는 방법 에 대한 간단한 자습서가 있습니다 .


답변

액세스 로그에있는 모든 것이 GET 요청이라고 가정하면 로그의 타임 스탬프 해결 한계로 묶인 요청을 신경 쓰지 않아도됩니다. $ SCRIPTING_LANGUAGE의 약 10 줄이 트릭을 수행해야합니다. POST, 쿠키, HTTP 인증 및보다 미묘한 타이밍이 훨씬 더 흥미로운 연습입니다.


답변

이를 위해서는 http 로그 재생을 지원하는로드 테스트 앱과 같은 프로그램이 필요합니다. 그러한 앱 중 하나는 HTTPerf ( https://github.com/httperf/httperf )입니다.

방법 기사는 https://www.igvita.com/2008/09/30/load-testing-with-log-replay/에 있습니다.


답변

조금 다르게 할 것입니다. 귀하의 질문을 이해하지만 서버를로드 할 때 ‘ab’도구를 살펴볼 수 있습니다. 대부분의 아파치 설치와 함께 제공됩니다. 달리는:

ab -c 15 -n 1000 http://site.name/

한 번에 15 개의 요청을 수행하는 1000 개의 요청을 수행합니다. 나는 이것이 정확히 당신이 찾고있는 것이 아니라는 것을 알고 있으며, 이것은 당신이 제공 한 주소 만 쿼리 할 것입니다. 로드가 필요한 경우 빠르고 쉬운 방법이며 디버깅에 매우 유용한 통계를 제공합니다.


답변

당신은 왜 스스로 개발하지 않습니까? 로그를 얻으십시오; 파싱하십시오. URI를 가져옵니다. 컬 전화를합니다. PHP로 이것을 작성하고 동시성을 위해 아파치에서 실행할 수 있습니다.

로그가 gz 형식 인 경우 zcat을 수행하고 readlog 기능을 사용하십시오. URL이 제공됩니다. 이제 phpCurl을 사용하여 URL을 누르십시오. 처리량을 높이려면 아파치에서 실행하십시오 (ab를 사용하여로드).


답변