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