stress-ng 壓力測試、taskset 綁定cpu


一、stress-ng  

CentOS 7 的EPEL源包含2個壓力測試工具,一個是標准的stress,另一個是其升級版stress-ng。

1、安裝stress-ng   

yum install -y epel-release.noarch && yum -y update
yum install -y stress stress-ng

2、使用方法

stress的參數
-c 2 : 生成2個worker循環調用sqrt()產生cpu壓力

-i 1 : 生成1個worker循環調用sync()產生io壓力

-m 1 : 生成1個worker循環調用malloc()/free()產生內存壓力

運行2worker CPU壓力40分鍾,CPU占用率穩定在20%左右

3、示例

# stress -c 2 -i 9 -m 8
stress: info: [5100] dispatching hogs: 2 cpu, 9 io, 8 vm, 0 hdd

# uptime
 00:16:48 up 41 min,  3 users,  load average: 21.05, 20.64, 16.66

4、stress-ng的參數

stress-ng的參數有幾百項,可以模擬復雜的壓力測試,但是兼容stress的參數。 主要使用參數:

-c N :運行N worker CPU壓力測試進程
--cpu-method all :worker從迭代使用30多種不同的壓力算法,包括pi, crc16, fft等等

-tastset N:將壓力加到指定核心上

-d N:運行N worker HDD write/unlink測試

-i N:運行N worker IO測試

示例:運行8 cpu, 4 fork, 5 hdd, 4 io, 50 vm, 10小時

stress-ng --cpu 8 --cpu-method all --io 4 --vm 50 -d 5  --fork 4 --timeout 36000s

二、taskset

taskset命令,可用於進程的CPU調優,可以把服務器上運行的某個進程,指定在某個CPU上工作。

1、執行以下命令,獲取進程狀態(以下操作以進程test.sh為例,對應的pid為23989)

ps aux | grep test.sh

2、執行以下命令,查看進程當前運行在哪個CPU上。

taskset -p 進程號

taskset -p 23989

3、執行以下命令,指定進程運行在第二個CPU(CPU1)上。

taskset -pc 1 進程號

例如:taskset -pc 1 23989

也可以使用如下命令在啟動程序時綁定CPU(啟動時綁定到第二個CPU)上。

taskset -c 1 ./test.sh&

taskset -c 8-15 sysbench cpu --threads=8 run

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM