실제로드 테스트를 수행하기 위해 서버에서 Apache 액세스 로그를 다시 재생하려면 어떻게해야합니까?


13

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

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

답변:


14

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

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


3
나는 이것을 시도했고 분명히 그것이 잘 작동하지 못했기 때문에 나는 바보입니다. 나는에서 파이썬 스크립트를 사용하여 결국 insom.me.uk/z/2009/02/...
스튜어트 로빈슨에게

원래 링크가 죽었 때문에, 여기에 링크입니다 archive.org : web.archive.org/web/20090305084634/https://www.insom.me.uk/...
Walty Yeung의

좋아, 다른 사람들이 이것을 발견하면이 스크립트에는 스레딩에 문제가 있습니다. 하나는 교체해야 할 수도 thread와 LIB threadingLIB ( stackoverflow.com/questions/19558401/... )
Walty Yeung의에게

1

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


-1

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

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


1
실제 설명이 포함되어 있으면 훨씬 더 나은 답변이 될 것입니다. 웹 사이트는 종종 사라질 수 있으므로 외부 웹 사이트에 연결하는 것은 권장하지 않습니다.
Michael Hampton

-2

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

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

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


질문에 "[...] AB 테스트 [...]로 재현 할 수없는 버그가 있습니다"라고 표시되면 AB를 사용하는 것이 좋습니다.
womble

도구에 나열된 AB가 누락되었습니다. : p 나는 그것이 편집이라고 말하고 싶지만 솔직히 확신하지 못한다.
TrueDuality

-2

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

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


1
그런 다음로드 테스트를위한 두 가지 응용 프로그램이 있습니다. 그것은 뒤 틀릴 것입니다.
스튜어트 로빈슨
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.