0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux下的stress-ng壓力測試工具介紹

jf_TEuU2tls ? 來源:浩道linux ? 2023-11-03 09:31 ? 次閱讀

前言

大家好,這里是浩道Linux,主要給大家分享Linux、Python、網絡通信、網絡安全等相關的IT知識平臺。

今天浩道跟大家分享Linux下一款強大的壓力測試工具------stress-ng,這款測試工具對于運維工程師或者測試工程師,還是比較受歡迎的。本文帶你安裝部署,并且列舉出它常用的測試命令,真正做到拿來即用,看完就沒有你不會用的!

一、stress-ng工具介紹

stress-ng是一款用于對系統(tǒng)進行壓力測試的工具。它有著非常強大的功能,可以對系統(tǒng)的多種資源指標進行測試,包括但不限于CPU、磁盤、網絡、內存、進程、文件系統(tǒng)等。

用戶可以根據自己的需求選擇相應的負載模式,并設置負載級別、持續(xù)時間等參數來控制測試的強度和時長。當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/

293ac8f2-79db-11ee-939d-92fbcf53809c.png

以下我是通過wget命令在Linux環(huán)境下直接下載,當然可以下載到本地后再上傳Linux系統(tǒng)。

wget https://fossies.org/linux/privat/stress-ng-0.16.03.tar.gz

下載好后本地源碼壓縮包如下所示:

29549d54-79db-11ee-939d-92fbcf53809c.png

2)源碼包編譯安裝

解壓、編譯與安裝三部曲

tar -xzf stress-ng-0.16.03.tar.gz 

cd stress-ng-0.16.03
make && make install

待編譯完整完成,看到如下標識說明安裝成功。

296c1aec-79db-11ee-939d-92fbcf53809c.png

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循環(huán)調用sqrt()產生cpu壓力;
-i,--io:后面空格跟一個整數,表示測試磁盤I/O的進程數, --io 4 :表示生成4個worker循環(huán)調用sync()產生io壓力;
-m,--vm:后面空格跟一個整數,表示測試內存的進程數,--vm 4 :表示生成4個worker循環(huán)調用malloc()/free()產生內存壓力;
-d,--hdd:后面空格直接跟數字,表示產生執(zhí)行write和unlink函數的進程數,用于磁盤負載測試;
--cpu-method:指定CPU的測試方法,后面空格直接跟方法名;
--metrics:輸出命令執(zhí)行指標;
--vm-bytes:指定在內存測試時malloc的字節(jié)數,默認256M;
--class :指定測試類別,后面空格跟類別名;
--matrix :啟用矩陣測試模式,后面空格跟矩陣模式名;
--random-seed:指定測試隨機種子,后面空格跟種子名;
--sequential:啟用順序測試模式;
--hdd-bytes:指定寫的字節(jié)數;
--cpu-load:CPU負載占比,后面空格直接跟數字,單位為百分比。

四、stress-ng壓力測試實用場景 1、CPU負載測試

如下命令使用4個CPU進程數,進行矩陣乘法計算進行壓力測試,持續(xù)時間為600秒。

stress-ng --cpu 4 --cpu-method matrixprod --timeout 600s
此時先通過top命令查看測試前系統(tǒng)負載情況,如下圖所示:

297784fe-79db-11ee-939d-92fbcf53809c.png

執(zhí)行壓力測試過程中,再通過top命令查看系統(tǒng)負載情況,如下圖所示:

29937ba0-79db-11ee-939d-92fbcf53809c.png

2、內存負載測試 如下命令使用4個內存分配進程,每次分配大小512M,分配后不釋放,保持測試600秒。

stress-ng--vm4--vm-bytes512M--timeout600s
此時先通過free和top命令查看測試前系統(tǒng)內存使用情況,如下圖所示:

29a7d94c-79db-11ee-939d-92fbcf53809c.png

執(zhí)行壓力測試過程中,再通過free和top命令查看系統(tǒng)內存使用情況,如下圖所示:

29c23d14-79db-11ee-939d-92fbcf53809c.png

如果不帶保持時間參數,長期保持測試命令如下:

stress-ng --vm 4 --vm-bytes 512M --vm-keep

3、IO負載測試 如下命令使用4個IO進程,保持測試600秒。

stress-ng --io 4 --timeout 600s

此時先通過top命令及prometheus監(jiān)控系統(tǒng)查看測試前系統(tǒng)負載情況,如下圖所示:

29f05604-79db-11ee-939d-92fbcf53809c.png

2a005efa-79db-11ee-939d-92fbcf53809c.png

執(zhí)行壓力測試過程中,再通過top命令及prometheus監(jiān)控系統(tǒng)查看系統(tǒng)負載情況,如下圖所示:

2a0f21f6-79db-11ee-939d-92fbcf53809c.png

2a2592b0-79db-11ee-939d-92fbcf53809c.png

4、磁盤及IO測試

如下命令使用4個I/O進程,1個寫進程,每次寫1000M文件塊,測試600秒。

stress-ng--io4--hdd1--hdd-bytes1000M--timeout600s

此時先通過top命令及prometheus監(jiān)控系統(tǒng)查看測試前系統(tǒng)負載情況,如下圖所示:

2a456eaa-79db-11ee-939d-92fbcf53809c.png

2a5b6084-79db-11ee-939d-92fbcf53809c.png

2a71321a-79db-11ee-939d-92fbcf53809c.png

執(zhí)行壓力測試過程中,再通過top命令及prometheus監(jiān)控系統(tǒng)查看系統(tǒng)負載情況,如下圖所示:

2a99dd46-79db-11ee-939d-92fbcf53809c.png

2aafb102-79db-11ee-939d-92fbcf53809c.png

2ae09e3e-79db-11ee-939d-92fbcf53809c.png

5、CPU及磁盤測試

如下命令使用4個CPU進程,2個I/O進程,測試600秒。

stress-ng --cpu 4 -i 2 --timeout 600s

此時先通過top命令查看測試前系統(tǒng)CPU負載情況,如下圖所示:

2aee4e8a-79db-11ee-939d-92fbcf53809c.png

執(zhí)行壓力測試過程中,再通過top命令查看系統(tǒng)負載情況,如下圖所示:

2b05de42-79db-11ee-939d-92fbcf53809c.png

6、調整CPU負載占用百分比進行測試 實際測試環(huán)境中可能不是要求CPU、內存等負載為100%情況下進行,此時可以通過調整相關負載參數進行測試。 如下命令使用4個CPU進程,調整CPU負載占比為60%進行測試,測試時長600秒。

stress-ng --cpu 4 --cpu-load 60 --timeout 600s

執(zhí)行壓力測試過程中,再通過top命令查看系統(tǒng)負載情況,如下圖所示:

2b1aea30-79db-11ee-939d-92fbcf53809c.png

五、總結

工欲善其事,必先利其器,實用的工具可以讓你在實際工作中如虎添翼。stress-ng工具選項參數眾多,這也說明了它功能強大。以上只是列舉一些常用的參數并進行常用的場景進行測試。大家如果想深入使用這款工具,可以自行查閱相關的資料。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11161

    瀏覽量

    208459
  • 磁盤
    +關注

    關注

    1

    文章

    355

    瀏覽量

    25138
  • 文件系統(tǒng)

    關注

    0

    文章

    283

    瀏覽量

    19860
  • 源碼
    +關注

    關注

    8

    文章

    629

    瀏覽量

    29074
  • python
    +關注

    關注

    54

    文章

    4756

    瀏覽量

    84283

原文標題:Linux下的stress-ng壓測工具太強悍了!

文章出處:【微信號:浩道linux,微信公眾號:浩道linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于模型的動態(tài)測試工具TPT

    針對嵌入式系統(tǒng)的基于模型的動態(tài)測試工具,支持眾多業(yè)內主流的工具平臺和測試環(huán)境,可應用于整個嵌入式軟件開發(fā)周期,實現各種異構環(huán)境的自動化測試
    發(fā)表于 02-20 14:28 ?884次閱讀
    基于模型的動態(tài)<b class='flag-5'>測試工具</b>TPT

    stress-ng工具介紹和安裝部署方法

    眾所周知,實際工作中,運維和測試的工作存在好多關聯的,有時候測試同事找不到解決辦法了,會第一時間找運維的同事尋求幫忙。今天給大家分享一款測試時常用到的壓力
    的頭像 發(fā)表于 01-04 09:53 ?5059次閱讀
    <b class='flag-5'>stress-ng</b><b class='flag-5'>工具</b><b class='flag-5'>介紹</b>和安裝部署方法

    延時僅33us,Linux-RT實時性能測試分享—基于瑞芯微RK3562J國產平臺

    、滿負荷(運行stress壓力測試工具)、滿負載-隔離CPU3核心(運行stress壓力測試工具
    發(fā)表于 08-22 13:51

    淺談Web應用程序的壓力測試

    應用程序;壓力測試;ACTAbstract:Stress testing is an essential part of W eb application program testing,Taking
    發(fā)表于 10-10 15:23

    如何進行linux的adb調試工具安裝

    對于安卓的開發(fā)人員來說,大家都應該在windows下面使用adb調試工具。其安裝并不是很難,且也有豌豆莢這個軟件可以使用,可以自動安裝驅動。但是Linux的adb如何進行安裝呢?下面就是就我自己個人的意見和小小的經驗給大家介紹
    發(fā)表于 07-19 07:11

    Nbench性能測試工具

    嵌入式Linux測試工具1 Nbench—性能測試工具nbench的結果主要分為MEM、INT和FP,其中MEM指數主要體現處理器總線、CACHE和存儲器性能,INT當然是整數處理性能,FP則體現雙
    發(fā)表于 11-04 07:47

    rk壓力測試工具無法使用怎么解決?

    rk壓力測試工具無法使用怎么解決?
    發(fā)表于 03-03 06:30

    TD-SCDMA測試工具體系及應用

    目錄: TD-SCDMA測試工具體系 TD-SCDMA網絡類測試工具介紹 TD-SCDMA終端類測試工具介紹  
    發(fā)表于 08-02 15:08 ?18次下載

    汽車CAN/LIN總線測試流程和測試工具解析

    汽車CAN/LIN總線測試流程和測試工具解析 汽車CAN/LIN總線系統(tǒng)測試的關鍵是測試流程、測試標準和
    發(fā)表于 03-19 10:44 ?8374次閱讀

    軟件測試工具的分類和使用

    軟件測試 是軟件工程中的一個重要且復雜的過程,在軟件測試的不同階段中合理地引入相應的測試工具,可以加快測試進度、提高測試質量。本文
    發(fā)表于 07-07 17:49 ?68次下載

    微軟壓力測試工具Microsoft Web Application Stress Tool

    電子發(fā)燒友網站提供《微軟壓力測試工具Microsoft Web Application Stress Tool.rar》資料免費下載
    發(fā)表于 07-08 00:25 ?48次下載

    滲透測試工具開發(fā)

    滲透測試工具開發(fā)
    發(fā)表于 09-07 10:30 ?18次下載
    滲透<b class='flag-5'>測試工具</b>開發(fā)

    常用的軟件測試工具有哪些_10款常用的軟件測試工具推薦

    一個好的軟件測試工具測試管理工具結合起來使用將會使軟件測試效率大大的提高。那么軟件測試工具有哪些呢?本文匯總了十款常用的軟件測試工具,具體
    發(fā)表于 04-24 14:14 ?7.5w次閱讀

    嵌入式Linux測試工具

    嵌入式Linux測試工具1 Nbench—性能測試工具nbench的結果主要分為MEM、INT和FP,其中MEM指數主要體現處理器總線、CACHE和存儲器性能,INT當然是整數處理性能,FP則體現雙
    發(fā)表于 11-01 16:26 ?2次下載
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>測試工具</b>

    redis集群性能測試工具有哪些

    Redis是一種高性能的內存鍵值存儲系統(tǒng),它被廣泛應用于各種互聯網應用和大規(guī)模的數據存儲中。為了評估Redis在不同場景的性能,我們需要使用一些性能測試工具來對Redis集群進行基準測試和負載
    的頭像 發(fā)表于 12-04 11:36 ?676次閱讀