Làm cách nào tôi có thể phát lại nhật ký truy cập Apache tại các máy chủ của mình để thực hiện kiểm tra tải trong thế giới thực?


13

Tôi đã xem Công cụ để kiểm tra tải máy chủ HTTP? nhưng tôi không thể thấy cách phát lại nhật ký hiện có của mình trong bất kỳ công cụ nào. Tôi có một lỗi chỉ xảy ra trong các hoạt động tải nhất định mà công cụ kiểm tra JMeter và AB hiện tại của tôi không thể tái tạo.

Tôi muốn chỉ đơn giản là cung cấp cho công cụ access_logs và để nó phát lại, nhanh hơn hoặc ở cùng tốc độ.

Câu trả lời:


14

Bạn có thể sử dụng thành phần Sampler Nhật ký truy cập của Jmeter .

Có một hướng dẫn ngắn về việc sử dụng nó trong bản PDF này .


3
Tôi đã thử điều này và rõ ràng tôi phải là một kẻ ngốc vì tôi không thể làm cho nó hoạt động tốt. Cuối
Stewart Robinson

Vì liên kết ban đầu là chết, đây là liên kết trong archive.org: web.archive.org/web/20090305084634/https://www.insom.me.uk/...
Walty Yeung

Ok, trong trường hợp một số người khác tìm thấy điều này, kịch bản này có vấn đề với luồng. Người ta có thể cần thay thế threadlib bằng threadinglib ( stackoverflow.com/questions/19558401/ cấp )
Walty Yeung

1

Giả sử tất cả những gì bạn có trong nhật ký truy cập của mình là các yêu cầu NHẬN và bạn không bận tâm đến các yêu cầu tập trung ở giới hạn độ phân giải của dấu thời gian trong nhật ký, khoảng 10 dòng $ SCRIPTING_LANGUAGE sẽ thực hiện thủ thuật. POST, cookie, HTTP auth và thời gian tinh tế hơn là một bài tập thú vị hơn nhiều.


-1

Điều đó sẽ yêu cầu một chương trình, chẳng hạn như một ứng dụng kiểm tra tải, hỗ trợ phát lại nhật ký http. Một ứng dụng như vậy là HTTPerf ( https://github.com/httperf/httperf ).

Bài viết hướng dẫn có tại https://www.igvita.com/2008/09/30/load-testing-with-log-replay/


1
Đây sẽ là một câu trả lời tốt hơn nhiều nếu nó bao gồm một lời giải thích thực tế. Đơn giản là liên kết đến một trang web bên ngoài không được khuyến khích ở đây, vì các trang web có thể và thường biến mất.
Michael Hampton

-2

Tôi sẽ làm một cái gì đó hơi khác một chút. Tôi hiểu câu hỏi của bạn, nhưng nếu bạn nhìn vào việc tải lên máy chủ của mình, bạn có thể muốn xem xét công cụ 'ab'. Nó đi kèm với hầu hết các cài đặt của apache. Đang chạy:

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

Sẽ thực hiện 1000 yêu cầu thực hiện 15 yêu cầu cùng một lúc. Tôi biết đây không phải là chính xác những gì bạn đang tìm kiếm và điều này sẽ chỉ truy vấn một địa chỉ mà bạn cung cấp. Nếu bạn cần tải thì đây là một cách nhanh chóng và đơn giản để làm điều đó, và nó sẽ cung cấp cho bạn một số thống kê rất hữu ích để gỡ lỗi.


Nếu câu hỏi cho biết "Tôi có một lỗi mà [...] AB thử nghiệm [...] không thể sao chép", tại sao bạn lại đề xuất sử dụng AB?
womble

Tôi đã bỏ lỡ AB được liệt kê trong các công cụ. : p Tôi muốn nói rằng đó là một bản chỉnh sửa nhưng tôi thực sự không chắc chắn về bản thân mình.
TrueDuality

-2

Tại sao bạn không tự phát triển? Lấy nhật ký; phân tích nó Lấy URI. Thực hiện cuộc gọi curl. Bạn có thể viết cái này bằng php và chạy nó trong apache để đồng thời.

Nếu nhật ký của bạn ở định dạng gz, hãy thực hiện zcat, sử dụng tiện ích readlog. Điều đó sẽ cung cấp URL. Bây giờ sử dụng phpCurl để nhấn URL. Đối với thông lượng cao hơn chạy nó trong apache (sử dụng ab để tải nó).


1
Sau đó, tôi sẽ có hai ứng dụng để tải thử nghiệm. Điều đó sẽ được xoắn.
Stewart Robinson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.