Tôi bắt đầu viết một số bài kiểm tra cơ bản trong JMeter và ngạc nhiên rằng các phép đo rất khác so với các phép đo từ Apache ab.Được phép đo, JMeter hoặc Apache ab?
Tôi có mạng LAN gigabit kết nối máy chủ Intel i7 chạy Nginx và máy kiểm tra i5 chạy JMeter hoặc ab. Ban đầu, tôi chỉ đơn giản là kiểm tra tốc độ phản hồi của trang chủ Nginx.
ab -c 1 -n 100 http://testserver.local/
cho
Document Path: /
Document Length: 151 bytes
Concurrency Level: 1
Time taken for tests: 0.078 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 38400 bytes
HTML transferred: 15100 bytes
Requests per second: 1280.77 [#/sec] (mean)
Time per request: 0.781 [ms] (mean)
Time per request: 0.781 [ms] (mean, across all concurrent requests)
Transfer rate: 480.29 [Kbytes/sec] received
Kết quả này một cách nhất quán tái sản xuất, +/- vài phần trăm.
Trong JMeter, tôi có 1 người sử dụng 100-loop thread group chứa:
- một tiêu đề quản lý HTTP thiết Accept-Encoding: gzip
- một HTTP GET/sampler
- người nghe báo cáo tóm tắt
Chỉ với 100 mẫu, điều này cho phép cực kỳ kết quả không nhất quán mỗi khi tôi chạy nó. Nhưng thực tế đáng ngạc nhiên nhất là thông lượng được báo cáo thấp tới 40 yêu cầu mỗi giây (không phải 1280). Tỷ lệ ghi nhận cao nhất là 1030, và điều này chỉ đạt được khi tôi tăng lên 10.000 mẫu.
Tôi có nghĩ rằng JMeter là công cụ sai cho các thử nghiệm tải đơn giản vì chi phí của nó quá cao để cho phép đo chính xác?
+1, tuy nhiên tôi nghĩ kết luận của bạn là chính xác. –