Lý thuyết về cách dùng Apache Benchmark ở đây, giờ chúng ta sẽ đi vào phần thực hành.
Chuẩn bị:
- 1 VPS để cài trang WordPress, hoặc bạn có sẵn website để thử
- 1 VPS để cài Apache Benchmark (Trước đó cần cài Ubuntu LTS, ví dụ v24.04)
1. Cài Apache Benchmark
Nạp danh sách các gói mới nhất cho Ubuntu:
sudo apt-get update
Cập nhật phiên bản mới nhất cho apache2-utils, gói này có bao gồm Apache Benchmark:
sudo apt-get install apache2-utils
2. Thực hiện lệnh Apache Benchmark
Câu lệnh, ví dụ:
ab -n 1000 -c 10 https://example.com/
Trong đó https://example.com/ là địa chỉ cần kiểm tra, nó có thể là một trang cụ thể trên website, chứ không cần phải là tên miền gốc.
Cả 2 website kiểm tra với Apache Benchmark, cấu hình VPS của 2 website khá tương đồng, nhưng panel khác nhau, và một bên có Cloudflare (web của hình 2).
Kết quả cho thấy:
- Demo ở điều kiện tương đối đơn giản với 10 request đồng thời, và có tổng cộng 1000 request.
- Cả 2 đều hoạt động ổn định khi cả 1000 request, không có request nào lỗi (nằm ngoài dải 2xx), tức là nếu máy khách yêu cầu, máy chủ đều trả về.
- Tuy nhiên hình 1 cho thấy tốc độ phản hồi khá chậm (90% request phản hồi trong 887ms), trong khi hình 2 cho thấy tốc độ phản hồi cao hơn khá nhiều (90% request phản hồi trong 276ms). Lý do có khả năng cao do cài Cloudflare & do thiết lập máy chủ Nginx thuần cho trang thuộc hình 2, trong khi hình 1 là Nginx + Apache (chưa có thêm plugin cache).
Trang thuộc hình 1 được thêm plugin cache (Cache Enabler) nhưng có vẻ tình hình không có cải thiện gì, thậm chí còn bị chậm hơn một chút:
Ở thử nghiệm cuối tôi thiết lập để trang thuộc hình 1 cũng dùng Nginx thuần thay vì dạng lai, và không cài thêm plugin cache (vì bản Nginx thuần đã có FastCGI cache).
Có vẻ với cài đặt Nginx thuần và bật FastCGI cache, kết quả cải thiện hơn rất nhiều. Với 90% request có phản hồi nằm trong 243ms. Xét ở mốc 99% thậm chí còn tốt hơn so với hình 2.
Ở mốc 30 request đồng thời, và vẫn thực hiện đủ 1000 request, ta thấy nó phản hồi vẫn khá tốt:
Còn website hình 2 khi có request tương tự (30rq/s, total: 1000rq):

3. Kết luận
Chúng ta có thể thấy rằng với Apache Benchmark (ab), các kết quả kiểm tra tương đối rõ ràng & trực quan, có 2 thông tin rất quan trọng bài kiểm tra này thông báo mà bạn cần để ý:
- Số lượng request thành công cho thấy mức độ ổn định của máy chủ. Lý tưởng nhất là 100% request thành công.
- Tỷ lệ phần trăm các request được phục vụ trong thời gian nhất định (ms). Cho thấy tốc độ phản hồi các request tốt đến đâu tương ứng với mức ‘căng’ của request.
Chúng ta có thể sử dụng ab để so sánh các cấu hình tối ưu website, ví dụ trên WordPress, xem rằng lựa chọn panel với cấu hình xyz (nginx, openlitespeed, nginx + apache, litespeed), kết hợp cache abc (FastCGI cache, Varnish cache, Litespeed cache, WP-Rocket,…) có hiệu quả hơn hay không?




