Khi bạn chuẩn bị ra mắt một trang web mới do mình tự làm, nhưng lại không chắc chắn khi mang ra sử dụng thực tế thì nó sẽ chịu được tải và hiệu năng sẽ ra sao khi nhiều người dùng cùng truy cập ? Mình xin giới thiệu một ứng dụng macOS chạy bằng command line tên là Siege để phục vụ nhu cầu test hiệu năng của VPS.
Siege là một ứng dụng mã nguồn mở chạy trên nền linux giúp bạn giả lập nhiều kết nối http đến website mục tiêu mà bạn muốn kiểm tra hiệu năng và khả năng chịu tải. Siege hỗ trợ xác thực cơ bản, cookies, HTTP, HTTPS và FTP protocol.
Cài đặt Siege trên macOS
Để cài đặt Siege thì trước tiên bạn phải cài đặt Homebrew. Cách cài đặt Homebrew các bạn có thể xem ở đây.
Sau khi cài Homebrew thì tiến hành cài Segie bằng lệnh sau.
brew install siege
Cách sử dụng Siege
Lệnh sử dụng Sieg có pháp
#siege [option] [url]
Trong đó
[url]: là địa chỉ trang web bạn muốn test.
[option] là các tham số tùy chọn với các giá trị như sau:
-V, –version: Phiên bản của siege.
-h, –help: trợ giúp, đưa ra bản tóm tắt của tất cả các tùy chọn dòng lệnh.
-C, –config: hiển thị cấu hình hiện tạo trong file $HOME/.siegerc và cho phép chỉnh sửa cấu hình.
-v, –verbose: hiển thị trạng thái HTTP return và GET request.
-c NUM, –concurrent = NUM: Cho phép thiết lập số người dùng đồng thời kết nối tới mục tiêu.
-i, –internet: Tạo ra sự mô phỏng ngẫu nhiên bằng cách chọn ngẫu nhiên các url đọc từ tập tin urls.txt.
-r NUM: Cho phép bạn thiết lập số lần lặp lại mỗi khi hết thời gian chạy được người dùng quy định.
-d NUM, –delay=NUM: Chỉ ra thời gian delay của một lần kết nối. Thời gian delay là một số ngẫu nhiên trong khoảng từ 0 đến NUM.
-t NUMm: Quy định khoảng thời gian để chạy thử nghiệm.
-l [FILE], –log[=FILE]: Chính sách cho phép ghi log. Nếu cài mặc định thì file log sẽ được lưu ở SIEGE_HOME/var/siege.log. Nếu siege được cài /usr/local thì nó sẽ lưu file log tại /usr/local/var/siege.log.
-H HEADER, –header = HEADER: Cho phép bạn thêm các thông tin bổ sung vào header.
-A “User Agent”: Sử dụng tùy chọn này để thiết lập User-Agent trong yêu cầu.
-f FILE, –file=FILE: Các tập tin Url mặc định là SIEGE_HOME/etc/urls.txt.
Ví dụ muốn kiểm tra phiên bản của Siege.
siege -V SIEGE 4.0.4 Copyright (C) 2017 by Jeffrey Fulmer, et al. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESSFOR A PARTICULAR PURPOSE.
Ví dụ thử giả lập 150 kết nối cùng lúc, chạy kiểm tra trong vòng 30 giây đến blog của Sơn là nguyenhongson.me
siege -c150 -t30s nguyenhongson.me
Kết quả
** SIEGE 4.0.4 ** Preparing 150 concurrent users for battle. The server is now under siege... Lifting the server siege... Transactions: 2035 hits Availability: 100.00 % Elapsed time: 29.78 secs Data transferred: 15.65 MB Response time: 1.43 secs Transaction rate: 68.33 trans/sec Throughput: 0.53 MB/sec Concurrency: 97.61 Successful transactions: 1935 Failed transactions: 0 Longest transaction: 2.45 Shortest transaction: 0.19
Như vậy là web server của mình vẫn hoàn toàn chịu được 150 lượt truy cập cùng lúc trong 29.78 giây. Thời gian đáp ứng trung bình của mỗi lượt truy cập là 1.43 giây. Trong đó:
Transactions: số lượt request vào website. 2035 request chia cho 150 người, như vậy trung bình mỗi người khoảng 13,56 request.
Availability: phần trăm số lượt kết nối thành công tới web server.
Elapsed time: thời gian hoàn thành của bài giả lập.
Data transferred: tổng dung lượng dữ liệu đã được tải.
Response time: thời gian đáp ứng trung bình cho mỗi request.
Transaction rate: Số lượt request trung bình trên mỗi giây. Công thức Transactions/Elapsed time = Transaction rate.
Successful transactions: số lần request thành công tới web server.
Failed transactions: Số lần web server báo lỗi HTTP 400 Bad Request.