前言
大家好,這里是浩道Linux,主要給大家分享Linux、Python、網絡通信、網絡安全等相關的IT知識平臺。
今天浩道跟大家分享Linux下一款強大的壓力測試工具------stress-ng,這款測試工具對于運維工程師或者測試工程師,還是比較受歡迎的。本文帶你安裝部署,并且列舉出它常用的測試命令,真正做到拿來即用,看完就沒有你不會用的!
一、stress-ng工具介紹
stress-ng是一款用于對系統進行壓力測試的工具。它有著非常強大的功能,可以對系統的多種資源指標進行測試,包括但不限于CPU、磁盤、網絡、內存、進程、文件系統等。
用戶可以根據自己的需求選擇相應的負載模式,并設置負載級別、持續時間等參數來控制測試的強度和時長。當stress-ng測試CPU時,會不斷調用進程,計算隨機數的平方根;當測試內存時,會不斷調用內存調用malloc和內存釋放free函數;當測試磁盤I/O時,會不斷調用sync()中斷,以測試磁盤I/O。
CentOS 7 的EPEL源包含2個壓力測試工具,一個是標準的stress,另一個是其升級版stress-ng。
stress-ng是stress的升級版,用于Linux壓力測試,帶源碼。stress-ng兼容stress, 支持產生各種復雜的壓力。
二、stress-ng工具安裝部署
stress-ng的安裝支持yum方式安裝及源碼安裝兩種方式,不過yum方式安裝不是最新版本,推薦用源碼方式安裝最新版本。
1、yum方式安裝
yum install -y epel-release.noarch && yum -y update yuminstall-ystressstress-ng
2、源碼安裝
1)首先下載相應源碼,可以從以下站點下載最新stress-ng源碼包。
https://fossies.org/linux/privat/
以下我是通過wget命令在Linux環境下直接下載,當然可以下載到本地后再上傳Linux系統。
wget https://fossies.org/linux/privat/stress-ng-0.16.03.tar.gz
下載好后本地源碼壓縮包如下所示:
2)源碼包編譯安裝
解壓、編譯與安裝三部曲
tar -xzf stress-ng-0.16.03.tar.gz
cd stress-ng-0.16.03
make && make install
待編譯完整完成,看到如下標識說明安裝成功。
3)安裝完成查看驗證版本信息
[root@node1 stress-ng-0.16.03]# stress-ng -V stress-ng, version 0.16.03 (gcc 4.8.5, x86_64 Linux 3.10.0-957.el7.x86_64) ?¥
三、stress-ng命令用法及常見參數 1、stress-ng命令用法
stress-ng [OPTION [ARG]]
2、stress-ng命令常見選項參數
-h,--help:顯示幫助信息; --version:顯示版本信息; -t,–timeout:指定程序運行結束的時間,后面直接跟數字,單位為秒; -c,–-cpu:后面空格跟一個整數,表示測試CPU的進程數,--cpu 4 :表示生成4個worker循環調用sqrt()產生cpu壓力; -i,--io:后面空格跟一個整數,表示測試磁盤I/O的進程數, --io 4 :表示生成4個worker循環調用sync()產生io壓力; -m,--vm:后面空格跟一個整數,表示測試內存的進程數,--vm 4 :表示生成4個worker循環調用malloc()/free()產生內存壓力; -d,--hdd:后面空格直接跟數字,表示產生執行write和unlink函數的進程數,用于磁盤負載測試; --cpu-method:指定CPU的測試方法,后面空格直接跟方法名; --metrics:輸出命令執行指標; --vm-bytes:指定在內存測試時malloc的字節數,默認256M; --class :指定測試類別,后面空格跟類別名; --matrix :啟用矩陣測試模式,后面空格跟矩陣模式名; --random-seed:指定測試隨機種子,后面空格跟種子名; --sequential:啟用順序測試模式; --hdd-bytes:指定寫的字節數; --cpu-load:CPU負載占比,后面空格直接跟數字,單位為百分比。
四、stress-ng壓力測試實用場景 1、CPU負載測試
如下命令使用4個CPU進程數,進行矩陣乘法計算進行壓力測試,持續時間為600秒。
stress-ng --cpu 4 --cpu-method matrixprod --timeout 600s此時先通過top命令查看測試前系統負載情況,如下圖所示:
執行壓力測試過程中,再通過top命令查看系統負載情況,如下圖所示:
2、內存負載測試 如下命令使用4個內存分配進程,每次分配大小512M,分配后不釋放,保持測試600秒。
stress-ng--vm4--vm-bytes512M--timeout600s此時先通過free和top命令查看測試前系統內存使用情況,如下圖所示:
執行壓力測試過程中,再通過free和top命令查看系統內存使用情況,如下圖所示:
如果不帶保持時間參數,長期保持測試命令如下:
stress-ng --vm 4 --vm-bytes 512M --vm-keep
3、IO負載測試 如下命令使用4個IO進程,保持測試600秒。
stress-ng --io 4 --timeout 600s
此時先通過top命令及prometheus監控系統查看測試前系統負載情況,如下圖所示:
執行壓力測試過程中,再通過top命令及prometheus監控系統查看系統負載情況,如下圖所示:
4、磁盤及IO測試
如下命令使用4個I/O進程,1個寫進程,每次寫1000M文件塊,測試600秒。
stress-ng--io4--hdd1--hdd-bytes1000M--timeout600s
此時先通過top命令及prometheus監控系統查看測試前系統負載情況,如下圖所示:
執行壓力測試過程中,再通過top命令及prometheus監控系統查看系統負載情況,如下圖所示:
5、CPU及磁盤測試
如下命令使用4個CPU進程,2個I/O進程,測試600秒。
stress-ng --cpu 4 -i 2 --timeout 600s
此時先通過top命令查看測試前系統CPU負載情況,如下圖所示:
執行壓力測試過程中,再通過top命令查看系統負載情況,如下圖所示:
6、調整CPU負載占用百分比進行測試 實際測試環境中可能不是要求CPU、內存等負載為100%情況下進行,此時可以通過調整相關負載參數進行測試。 如下命令使用4個CPU進程,調整CPU負載占比為60%進行測試,測試時長600秒。
stress-ng --cpu 4 --cpu-load 60 --timeout 600s
執行壓力測試過程中,再通過top命令查看系統負載情況,如下圖所示:
五、總結
工欲善其事,必先利其器,實用的工具可以讓你在實際工作中如虎添翼。stress-ng工具選項參數眾多,這也說明了它功能強大。以上只是列舉一些常用的參數并進行常用的場景進行測試。大家如果想深入使用這款工具,可以自行查閱相關的資料。
審核編輯:湯梓紅
-
Linux
+關注
關注
87文章
11292瀏覽量
209323 -
磁盤
+關注
關注
1文章
375瀏覽量
25201 -
文件系統
+關注
關注
0文章
284瀏覽量
19904 -
源碼
+關注
關注
8文章
639瀏覽量
29185 -
python
+關注
關注
56文章
4792瀏覽量
84627
原文標題:Linux下的stress-ng壓測工具太強悍了!
文章出處:【微信號:浩道linux,微信公眾號:浩道linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論