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