Hướng dẫn cài đặt và sử dụng Siege để load testing và benchmark http

30/12/2020

Siege là 1 tiện ích sử dụng để load testing và benchmark http. Nó được thiết kế để cho phép các nhà phát triển web đo lường trang của họ theo thời gian. Nó có thể kiểm tra 1 URL với số lượng người dùng mô phỏng do người dùng xác định.

Nó ghi lại thời gian thử nghiệm cũng như thời lượng của mỗi kết nối. Sau đó báo cáo số lượng transactions, thời gian trôi qua, byte được chuyển, thời gian phản hồi, tốc độ transactions và số lần trả lời với mã trạng thái 200.

Các tính năng bao gồm cuae Siege :

  • Ba chế độ hoạt động: regression, internet simulation và brute force
  • Hỗ trợ các chỉ thị GET và POST
  • Cookies
  • Transaction logging
  • Basic authentication
  • Các tính năng có thể cấu hình tùy vào mỗi người dùng
  • Hỗ trợ hầu hết các tính năng của giao thức HTTP/1.1
  • Hỗ trợ giao thức HTTPS

1. Cài đặt Siege trên Centos 7

Cài đặt siege từ kho lưu trữ có sẵn :

sudo yum update && sudo yum upgrade yum install -y epel-release yum install -y siege

Cài đặt Siege từ nguồn :

yum groupinstall 'Development Tools' cd wget http://download.joedog.org/siege/siege-latest.tar.gz tar -zxvf siege-latest.tar.gz cd siege-*/ ./configure --prefix=/usr/local --with-ssl=/usr/bin/openssl make && make install siege.config siege -C

Sau khi cài đặt hoàn tất, bạn có thể cấu hình tệp cấu hình siege của mình, nó nằm tại /root/.siege/siege.conf . Tiến hành bỏ comment logfiletime, sau đó sửa time = 1M. Tệp cấu hình sau khi chỉnh sửa sẽ như sau :

cat /root/.siege/siege.conf |egrep -v "^$|#"
logfile = $(HOME)/var/siege.log verbose = true color = on quiet = false json_output = true show-logfile = true logging = false logfile = ${HOME}/siege.log gmethod = HEAD parser = true nofollow = ad.doubleclick.net nofollow = pagead2.googlesyndication.com nofollow = ads.pubsqrd.com nofollow = ib.adnxs.com limit = 255 protocol = HTTP/1.1 chunked = true cache = false connection = close concurrent = 25 time = 1M delay = 0.0 internet = false benchmark = false accept-encoding = gzip, deflate url-escaping = true unique = true

Với cấu hình trên sẽ là 25 người dùng đồng thời truy cập trong hơn 1 phút

2. Kiểm tra tải trang web

Để kiểm tra tải trang web, chỉ cần xác định trang web và kiểm tra tải như sau :
siege <url>

Sau khoảng 1 phút ta sẽ được kết quả tương tự như sau :

{       "transactions":                         3419,           "availability":                       100.00,         "elapsed_time":                        59.14,         "data_transferred":                   165.29,         "response_time":                        0.42,         "transaction_rate":                    57.81,         "throughput":                           2.79,         "concurrency":                         24.26,         "successful_transactions":              3419,         "failed_transactions":                     0,         "longest_transaction":                  6.77,         "shortest_transaction":                 0.03 }

Ý nghĩa của các tham số trên như sau :

"transactions":                Tổng số request   "availability":                Tỷ lệ tạo request thành công "elapsed_time":                Thời gian thực hiện "data_transferred":            Tổng dữ liệu đã được truyền qua lại "response_time":               Thời gian phản hồi trung bình "transaction_rate":            Số req/s "throughput":                  Băng thông MB/s "concurrency":                 Số user đồng thời  "successful_transactions":     Số request thành công "failed_transactions":         Số request thất bại  "longest_transaction":         Phản hồi lâu nhất "shortest_transaction":        Phản hồi nhanh nhất

Nếu tính khả dụng (tỷ lệ tạo requests thành công) vẫn ở mức 100% và không có kết nối bị lỗi tức là hệ thống của bạn đã hoạt động tốt và không có vấn đề gì.

Ta có thể sử dụng thêm các tùy chọn đi kèm trong các lệnh. Dưới đây là 1 số tùy chọn được sử dụng phổ biến nhất. Nếu muốn biết thêm các tùy chọn khác hay thông tin đầy đủ hơn, bạn có thể chạy lệnh siege -help.

-c, –concurrent=NUM CONCURRENT users, default is 10 -r, –reps=NUM REPS, number of times to run the test. -t, –time=NUMm TIMED testing where “m” is modifier S, M, or H ex: –time=1H, one hour test. -d, –delay=NUM Time DELAY, random delay before each requst -b, –benchmark BENCHMARK: no delays between requests. -i, –internet INTERNET user simulation, hits URLs randomly. -f, –file=FILE FILE, select a specific URLS FILE.
Thử nghiệm với n người dùng đồng thời truy cập trang web :
siege -c10 <url> -v

dưới đây là đầu ra mẫu:

{       "transactions":                         4306,         "availability":                       100.00,         "elapsed_time":                        59.28,         "data_transferred":                   207.99,         "response_time":                        0.14,         "transaction_rate":                    72.64,         "throughput":                           3.51,         "concurrency":                          9.97,         "successful_transactions":              4306,         "failed_transactions":                     0,         "longest_transaction":                  5.07,         "shortest_transaction":                 0.03 }
Chạy Siege nhiều trang web :

Ta có thể kiểm tra với nhiều URL cùng 1 lúc. Điều này sẽ mô tả chính xác hơn cách người dùng sẽ truy cập trang web của bạn. Bằng cách để cho siege đọc chúng từ tệp /usr/local/etc/urls.txt.

Ví dụ mình sẽ ghi vào file urls.txt như sau:

Bây giờ mình sẽ sử dụng siege để test URL từ file, sử dụng tùy chon -f cho điều này :

siege -f /usr/local/etc/urls.txt

và đầu ra của mình như sau:

{       "transactions":                         5578,         "availability":                        99.98,         "elapsed_time":                        59.63,         "data_transferred":                   250.99,         "response_time":                        0.26,         "transaction_rate":                    93.54,         "throughput":                           4.21,         "concurrency":                         24.42,         "successful_transactions":              5594,         "failed_transactions":                     1,         "longest_transaction":                  5.14,         "shortest_transaction":                 0.03 }

Kết luận

Siege là 1 công cụ mạnh mẽ để đo lường độ tin cậy hệ thống của bạn khi chịu tải cao. Nó có thể được sử dụng bởi các nhà phát triển web phục vụ cho các yêu cầu tải dự kiến của bạn và xem các số liệu khác nhau như thời gian phản hồi, tỷ lệ lỗi, tính khả dụng của phản ứng.

ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

Thuê mua proxy Viettel ở đâu uy tín, chất lượng và giá tốt? 

Thuê mua proxy Viettel là nhu cầu đang được nhiều người dùng đặt ra. Được biết, đây là proxy được...
14/05/2024

Huớng dẫn dùng proxy cho ios, iphone 2023

Cách thay đổi Proxy trên Iphone: Để thay đổi địa chỉ IP bạn cần các bước sau: 1. Truy cập...
23/09/2023

Setup VIM for Python Development

How to Set Up VIM Editor for Python Programming VIM is a customizable programmable text editor. You can do anything you...
28/12/2020
Bài Viết

Bài Viết Mới Cập Nhật

Hướng Dẫn Chọn Dịch Vụ Thuê Địa Chỉ IPv4
10/03/2025

Reliable IPv4 and IPv6 Subnet Rental Services: The Perfect Solution for Global Businesses
23/12/2024

Tìm Hiểu Về Thuê Proxy US – Lợi Ích và Cách Sử Dụng Hiệu Quả
11/12/2024

Mua Proxy V6 Nuôi Facebook Spam Hiệu Quả Tại Onetcomvn
03/06/2024

Hướng dẫn cách sử dụng ProxyDroid để duyệt web ẩn danh
03/06/2024