一、前言
最近在工作中需要測試cpu占用率、內存占用率,我想要尋找一種合適的能提高cpu占用率的工具及方法。先嘗試了使用 echo "scale=5000; 4*a(1)" | bc -l -q
命令計算浮點數,但這種方式只能
進行CPU單線程簡單測試
,無法提高服務器的整體cpu占用率。后來,搜了不少資料,終於找到一款合適的cpu性能測試的工具——sysbench。
二、sysbench簡單介紹
SysBench是一個模塊化的、跨平台、多線程基准測試工具,主要用於評估測試各種不同系統參數下的數據庫負載情況。它主要包括以下幾種方式的測試:
1. cpu性能
2. 磁盤io性能
3. 線程調度性能
4. 互斥鎖性能
5. 數據庫性能(OLTP基准測試)
6. 內存性能
目前sysbench主要支持 MySQL、pgsq、Oracle 這3種數據庫。
sysbench在github的版本分為兩個分支:0.4和0.5,我使用的是0.5這個版本。
三、sysbench安裝
1、在https://github.com/akopytov/sysbench/tree/0.5下載sysbench-0.5.zip源碼包到本地某個目錄下,如/usr/cqs/目錄下;
2、在/etc/cqs/sysbench目錄下運行命令:unzip sysbench-0.5.zip,解壓zip包,會生成sysbench-0.5目錄;
3、 進入sysbench-0.5目錄,運行命令:./autogen.sh。
注意:這一步可能會報錯:automake 1.10.x (aclocal) wasn’t found, exiting。這說明你的操作系統沒有安裝automake,運行命令:yum install automake.noarch,即可安裝。然后再運行./autogen.sh命令,又報錯:libtoolize 1.4+ wasn’t found, exiting。說明你的操作系統沒有安裝libtool,運行命令:yum install libtool,即可安裝。繼續運行。
4、 運行./configure --without-mysql(不編譯測試mysql的功能模塊)
5、 make && make install
6、 運行sysbench –help測試是否安裝成功。
四、常用測試
1. 幫助信息
# sysbench –help
2. cpu測試
測試計算素數直到某個最大值所需要的時間。
# sysbench --test=cpu --cpu-max-prime=2000 --num-threads=40 run
補充:
查看CPU信息方法:
查看物理cpu個數 grep "physical id" /proc/cpuinfo | sort -u | wc -l 查看核心數量 grep "core id" /proc/cpuinfo | sort -u | wc -l
查看線程數量
grep "processor" /proc/cpuinfo | sort -u | wc -l #在sysbench的測試中,--num-threads取值為"線程數量"即可。
查看cpu占用比
top
3. 內存測試
測試內存的連續讀寫性能。
# sysbench –test=memory –num-threads=16 –memory-block-size=8192 –memory-total-size=1G run
memory測試類型可用的參數如下:

五、參考資料
- https://blog.csdn.net/chaoluo001/article/details/75212773
- https://blog.csdn.net/qq_34457768/article/details/80050776
- https://wiki.gentoo.org/wiki/Sysbench#Using_the_fileio_workload
- https://blog.csdn.net/zqtsx/article/details/42775393