Gatling – Hướng dẫn benchmark website cơ bản bằng Gatling

Tác giả: 24/08/2022

1. Chuẩn bị

  • Chuẩn bị một máy client cài đặt win 10 cấu hình trong bài lab này như sau: Ram: 2G ; CPU: 2Core ; Disk: 30G
  • Trên máy client có cài đặt sẵn phần mềm Gatling (Tham khảo hướng dẫn tại đây )
  • Chuẩn bị 1 website để tiến hành benchmart. Trong ví dụ này sẽ sử dụng một website chạy mã nguồn wordpress download từ trang chủ chưa qua chỉnh sửa

2. Kịch bản test

  • Trong kịch bản này một user sẽ thao tác các bước như sau: Truy cập website → click vào 1 bài viết, đọc bài viết đó –> click vào bài viết tiếp theo →  quay lại trang chủ và tìm kiếm từ khóa →  click vào bài viết tìm thấy và đọc

3. Phân Tích

  • Đầu tiên chúng ta sẽ dùng kịch bản quay được từ gatling và tiến hành thao tác cho 10 user truy cập đồng thời với kịch bản đó. Kết quả thu được như các hình ảnh bên dưới

Biểu đồ thể hiện tổng số request (445 request, 370 request có time trả về nhỏ hơn 0.8s ) 

Không có request nào bị lỗi 

Request có thời gian phản hồi thấp nhất là 0.002s và cao nhất là 7.6s

Với kịch bản đầu tiên website hoạt động bình thường, chưa có request lỗi, tình trạng hoạt động của tài nguyên CPU và Ram trên VPS bình thường như hình ảnh bên dưới 

  • Tiếp theo chúng ta sẽ sử dụng kịch bản trên với mỗi user được tạo ra sau 5 giây và duy trì trong 200 giây (Nghĩa là sẽ có 40 user được giả lập trong kịch bản này). Các kết quả trả về như bên hình ảnh bên dưới

Biều đồ thể hiện tổng số request là 1782, tất cả các request trả về đều có time nhỏ hơn 0.8s

Không có request nào bị lỗi

Request có thời gian phản hồi thấp nhất là 0.001s và cao nhất là 0.6s

Số user active đồng thời tại 1 thời điểm cao nhất là 12, tình trạng số lượng active đồng thời 12 user được duy trì khoảng 3′ 

Tình trạng hoạt động của tài nguyên Ram và CPU trên VPS vẫn bình thường chưa có hiện tượng quá tải

  • Tiếp theo chúng ta sẽ sử dụng kịch bản trên với mỗi user được tạo ra sau 2 giây và duy trì trong 100 giây (Nghĩa là sẽ có 50 user được giả lập trong kịch bản này). Các kết quả trả về như bên hình ảnh bên dưới

Biều đồ thể hiện tổng số request là 2234, tất cả các request trả về đều có time nhỏ hơn 0.8s

Không có request nào bị lỗi

Request có thời gian phản hồi thấp nhất là 0.001s và cao nhất là 1.6s

Số user active đồng thời tại 1 thời điểm cao nhất là 29, tình trạng số lượng active đồng thời 29 user được duy trì khoảng 1′

Ram trên VPS bắt đầu có hiện tượng sử dụng nhiều, thời điểm cao nhất là 75%

CPU load vẫn ở mức thấp tuy nhiên CPU use đã có thời điểm lên tới 50%

  • Tiếp theo chúng ta sẽ sử dụng kịch bản trên với mỗi user được tạo ra sau 1 giây và duy trì trong 35 giây (Nghĩa là sẽ có 35 user được giả lập trong kịch bản này). Các kết quả trả về như bên hình ảnh bên dưới

Biều đồ thể hiện tổng số request là 1536 có time nhỏ hơn 0.8s

Không có request fail

Request có thời gian phản hồi thấp nhất là 0.001s và cao nhất là 2.7s

Số user active đồng thời tại 1 thời điểm cao nhất là 35

Tài nguyên Ram và CPU trên VPS vẫn ở mức cho phép

  • Tiếp theo chúng ta sẽ sử dụng kịch bản trên với mỗi user được tạo ra sau 1 giây và duy trì trong 40 giây (Nghĩa là sẽ có 40 user được giả lập trong kịch bản này). Các kết quả trả về như bên hình ảnh bên dưới

Biều đồ thể hiện tổng số request là 1782, trong đó có 1755 request time nhỏ hơn 0.8s

Không có request fail

Request có thời gian phản hồi thấp nhất là 0.001s và cao nhất là 1.6s

Số user active đồng thời tại 1 thời điểm cao nhất là 40

Ram trên VPS sử dụng nhiều nhất trong lần test này là 1.6G tương đương 80% tài nguyên Ram trên VPS

CPU load vẫn bình thường, CPU use có thời điểm đạt 70%

  • Tiếp theo chúng ta sẽ sử dụng kịch bản trên với mỗi user được tạo ra sau 1 giây và duy trì trong 45 giây (Nghĩa là sẽ có 45 user được giả lập trong kịch bản này). Các kết quả trả về như bên hình ảnh bên dưới

Biều đồ thể hiện tổng số request là 2004, trong đó có 1976 request time nhỏ hơn 0.8s

Không có request fail

Request có thời gian phản hồi thấp nhất là 0.001s và cao nhất là 2.1s

Số user active đồng thời tại 1 thời điểm cao nhất là 45

Ram trên VPS sử dụng nhiều nhất trong lần test này là 1.6G tương đương 80% tài nguyên Ram trên VPS

CPU load vẫn bình thường, CPU use có thời điểm đạt 80%

  • Tiếp theo chúng ta sẽ sử dụng kịch bản trên với mỗi user được tạo ra sau 1 giây và duy trì trong 50 giây (Nghĩa là sẽ có 50 user được giả lập trong kịch bản này). Các kết quả trả về như bên hình ảnh bên dưới

Biều đồ thể hiện tổng số request là 1701, trong đó có 1525 request time nhỏ hơn 0.8s

Có 117 request fail

Request có thời gian phản hồi thấp nhất là 0.001s và cao nhất là 60s

Số user active đồng thời tại 1 thời điểm cao nhất là 50

Thời điểm VPS sử dụng 1.8G Ram là có hiện tượng quá tải, Tại thời điểm đó log VPS ghi nhận service mysqld bị kill và truy cập website bị lỗi mysql như hình ảnh bên dưới

4. Kết Luận

  • Từ các kịch bản test phía trên với số lượng user kết nối đồng thời khác nhau chúng ta có thể kết luận với mã nguồn wordpress download từ trang chủ chưa qua chỉnh sửa thì kết hợp với VPS có cấu hình 2G Ram, 2 Core CPU thì có thể kết nối đồng thời tối đa 45 user với các thao tác đơn giản như kịch bản đã nói ở đầu bài viết, khi đó ngưỡng sử dụng tài nguyên Ram trên VPS sẽ lên tới 80% (Lưu ý bài viết này chưa đề cập tới việc tối user các service có trên VPS)

Trả lời