Siege 是一個強大的基準測試工具,用於測試負載下 Web 伺服器的效能和穩定性。它允許您模擬多個用戶同時訪問您的網站,為您的伺服器如何處理高流量提供有價值的見解。 Siege支援基本的HTTP/HTTPS協議,可以執行GET、POST等請求方法。它廣泛用於壓力測試、效能調整和確保 Web 應用程式能夠處理尖峰負載。
要在 Ubuntu 24.04、22.04 或 20.04 上安裝 Siege,您有兩個主要選擇:使用命令列終端從 Ubuntu 預設儲存庫安裝,或直接從來源下載並安裝 Siege 以獲得最新版本和附加功能。本指南將引導您完成這兩種安裝方法。
安裝 Siege 之前更新 Ubuntu
確保您的 Ubuntu 系統使用最新的軟體包,對於維護高效、安全和可靠的運算環境至關重要。當我們執行命令時 sudo apt update
,系統的包列表被刷新。
這是執行此操作的命令:
sudo apt update && sudo apt upgrade
選擇Siege安裝方法
選項 1:透過 Ubuntu 預設儲存庫安裝 Siege
Siege 作為一個方便的基準測試工具包含在 Ubuntu 的預設儲存庫中。這大大簡化了安裝流程,讓我們可以使用Ubuntu內建的套件管理工具(APT)來進行安裝。
命令 sudo apt install siege 會觸發 APT 系統在儲存庫中搜尋 Siege 軟體包、處理依賴項並在您的系統上安裝 Siege。開頭的「sudo」是必要的,因為它允許使用 root 權限執行命令,這是系統範圍安裝所必需的。
若要安裝 Siege,請輸入以下命令:
sudo apt install siege
選項 2:透過原始碼在 Ubuntu 上安裝 Siege
對於喜歡了解最新功能和改進的個人來說,從原始碼編譯 Siege 是最佳選擇。此方法需要取得最新的原始程式碼並手動編譯它,以確保您擁有最新版本的 Siege。
下載最新的 Siege 原始碼
首先,您需要取得最新的原始碼。 Siege 團隊提供了最新版本的一致鏈接,簡化了此過程。但是,確保連結隨著時間的推移保持有效始終是一個好習慣。
若要下載最新的原始程式碼,請開啟終端並執行以下命令:
wget http://download.joedog.org/siege/siege-latest.tar.gz
提取和準備原始碼
下載完成後,下一步是提取已存檔的內容。執行以下命令來實現此目的:
tar -xvf siege-latest.tar.gz
這個指令會將 Siege 原始碼解壓縮到一個目錄中。使用以下命令導航至該目錄:
cd siege-*/
值得注意的是,確切的目錄名稱可能因不同的 Siege 版本而異。在繼續操作之前,請確保您位於正確的目錄中。
在深入了解編譯過程之前,建議 安裝 zlib 包,這有助於資料的壓縮和解壓縮:
sudo apt install zlib1g-dev
編譯並安裝 Siege 二進位文件
現在,您將在 Siege 來源目錄中啟動編譯和安裝程序。下面的命令序列將配置建置設定、編譯原始碼,然後在您的 Ubuntu 系統上安裝 Siege:
./configure --with-zlib
make
sudo make install
這些命令配置建置選項、編譯原始碼並在 Debian 系統上安裝 Siege。
驗證 Siege 安裝
安裝後,必須驗證 Siege 是否已正確安裝。此外,檢查安裝的版本可以深入了解其與特定功能或插件的兼容性,並通知您未來是否需要更新。
若要確定係統上安裝的 Siege 版本,請執行下列命令:
siege --version
在 Ubuntu 上配置 Siege
正確配置 Siege 對於使其發揮最佳功能並充分利用其功能至關重要。此過程涉及修改位於主目錄中的 Siege 設定檔 .siegerc。
找到 Siege 設定檔
siegerc 檔案是一項重要資產,可作為 Siege 操作的控制中心。它包含大量決定工具行為的參數。這些參數包括模擬使用者的數量、請求之間的延遲以及日誌記錄等級。
讓我們先探索現有的 siegerc 檔案。您可以透過執行 cat 命令來完成此操作:
cat /etc/siege/siegerc
配置 Siege 設定檔
您需要使用文字編輯器開啟該檔案來更改 Siege 配置以符合您的特定用例。在本指南中,我們將使用 Nano,因為它的使用者友善性和簡單性。
以下命令可讓您在 Nano 文字編輯器中開啟 siegerc 檔案:
sudo nano /etc/siege/siegerc
該文件是可配置選項的寶庫,但我們將重點放在一些更常用的參數:
- verbose:決定是否顯示詳細輸出(true)或不顯示(false)。
- csv:指示輸出是否應採用 CSV 格式(true)或不採用(false)。
- 並發:指定負載測試的模擬使用者數。
- time:確定負載測試的持續時間。
- 延遲:設定每個使用者請求之間的時間延遲。
- 網路:透過點擊網站上的隨機 URL(正確)或否(錯誤)來模擬使用者行為。
- benchmark:允許 Siege 作為基準測試工具運行(true)或不允許(false)。
例如,如果要模擬25個用戶,每個用戶每秒發送一次請求,測試持續1小時,則需要修改相關參數如下:
verbose = false
csv = true
concurrent = 25
time = 1H
delay = 1S
internet = false
benchmark = false
完成所需的更改後,按 Ctrl+X 儲存並退出,然後按 Y 確認儲存更改,然後按 Enter。
Ubuntu 上使用 Siege 進行 HTTP 負載測試
現在我們已經安裝並配置了 Siege,讓我們探索一些實際範例,讓您具體了解工具的工作原理。在這些演示中,我們將對您的 Web 伺服器進行壓力測試,模擬大量請求,這與 DDoS 攻擊不同。
這對於了解您的網站如何處理大流量非常有價值。但是,請獲得必要的權限並負責任地使用這些工具。理想情況下,它們應該只在您的伺服器上使用。
使用 Siege 進行 BenchMark 負載測試網站
首先,應用 Siege 使用預設數量的模擬使用者(也稱為「工作人員」)(即 25 個)來測試網站。這是透過使用 -t 1m 標誌來實現的,如下面的命令所示:
siege https://www.example.com -t 1m
一旦您執行此命令,Siege 將開始壓力測試,模擬 25 個並髮用戶向您的網站發送請求,持續 1 分鐘。測試結束後,Siege 將提供詳細的結果報告。
請記住,執行測試以獲得更有意義和更準確的見解通常最好持續 5 到 15 分鐘。 1 分鐘的持續時間僅用於演示目的。
要增加工作線程的數量,您可以使用 -c 標誌,後面跟著所需的數量。例如,要模擬 100 個工作人員,請使用 -c 100 標誌:
siege https://www.example.com -c 100 -t 2m
使用 Siege 對多個網站進行壓力測試
如果您是系統管理員或管理多個網域,您會很高興知道 Siege 可以同時處理多個網站。這可以透過設定檔 /etc/siege/urls.txt 來實現,Siege 可以使用該檔案來確定對哪些網站進行壓力測試。
要配置此文件,請使用開啟它 nano
:
sudo nano /etc/siege/urls.txt
然後,插入要進行壓力測試的網站的 URL:
https://www.example.com
https://www.example2.com
http://192.168.50.1
若要儲存這些變更並退出,請按 Ctrl+O、Enter,然後按 Ctrl+X。
最後,要啟動指定網站的壓力測試,請執行以下命令:
siege -f /etc/siege/urls.txt
Ubuntu 上的其他 Siege 指令
Siege 不僅是用請求轟炸你的伺服器;它是一個多功能工具,提供許多選項,可讓您自訂測試方法。從控制並髮使用者數量到調整每個請求之間的延遲,Siege 的命令選項可讓您模擬各種場景。
本節將讓您熟悉其他 Siege 指令,這些指令可讓您進行更細緻、更精細的測試。
透過 Siege 控制請求之間的延遲
使用 Siege,您可以在每個使用者的請求之間引入延遲,以模擬更真實的使用者行為。這可確保請求不會不間斷地連續發送。
例如,在下面的命令中:
siege https://www.example.com -c 50 -d 5
Siege 被指示對具有 50 個同時使用者的指定網站進行壓力測試,在每個使用者的請求之間引入 5 秒的延遲。
使用 Siege 自訂 HTTP 方法和標頭
Siege 可讓您自訂壓力測試的 HTTP 方法和標頭。例如,您可能想要發送帶有自訂標頭的 POST 請求。 -H 標誌可讓您設定自訂標頭,而 –method 選項可讓您設定 HTTP 方法。以下是如何使用這些選項:
siege --method="POST" -H "Content-Type: application/json" https://www.example.com
在上面的命令中,我們使用 POST 方法並將請求的 Content-Type 標頭設定為 application/json 。
使用 Siege 記錄結果
您可能需要記錄壓力測試結果以進行進一步分析或保存記錄。 Siege 可以將測試結果寫入日誌文件 -l
選項:
siege -l https://www.example.com
該命令告訴 Siege 記錄壓力測試結果。預設情況下,Siege 將日誌寫入您的主目錄中名為 siege.log 的檔案中。
結束語
在您的 Ubuntu 系統上成功安裝 Siege 後,您可以有效地對您的 Web 伺服器進行基準測試和壓力測試。無論您選擇方便的 Ubuntu 預設儲存庫還是直接從來源安裝的靈活性,Siege 都提供了可靠的工具集,可確保您的 Web 應用程式在負載下以最佳效能運作。定期更新 Siege 以利用新功能和改進,並用它來維護 Web 伺服器的穩定性和效能。