導航:首頁 > 操作系統 > linuxcpu壓力測試

linuxcpu壓力測試

發布時間:2022-08-31 12:20:41

❶ 如何測試cpu性能和穩定性

進入軟體目錄,直接運行「Prime95」可執行文件即可
首次使用時,軟體會彈出選擇對話框。我們在這里選擇「Just Stress Testing」
接下來在測試選項中,我們選擇第一項,其它設置保持不變。這一項主要是用於對 CPU 的浮點運算測試,另外還會對 CPU 的緩存進行填充測試。選擇好以後,點擊「OK」按鈕
然後軟體就會自動對當前電腦 CPU 進行壓力測試。我當前電腦的 CPU 是四核心的,所以會看到有「Work #1-4」,每一個 Work 區表示一個邏輯 CPU 核
接著我們可以打開系統的任務管理器,在性能列表中可以看到 CPU 的利用率會很
一般情況下,測試時間為 6 到 24 小時。如果 CPU 當真有硬體性能問題的話,可能在幾分鍾內就會出現異常情況,比如死機,重啟,自動斷電等。當我們對 CPU 進行壓力測試的時候,由於 CPU 利用率一直處理高負荷狀態,所以會導致 CPU 的溫度升高。如果 CPU 風扇散熱不給力的情況下,可能會導致自動斷電的情況。
如果要停止測試,請點擊軟體左上角菜單欄中「Test -> Stop」,然後再點擊「OK」按鈕停止所有測試

❷ 如何在linux上執行壓力測試

關鍵是你想測哪部份。 如果你想測GPU的,你可以下載一個opengl的測試程序 如果你想測CPU的壓力,你直接寫while一直運算可以了。 如果你想測外設,那就一直讀寫吧

❸ linux cpu使用率過高排查

方法一

第一步:使用

top命令,然後按shift+p按照CPU排序

找到佔用CPU過高的進程的pid

第二步:使用

top -H -p [進程id]

找到進程中消耗資源最高的線程的id

第三步:使用

echo 'obase=16;[線程id]' | bc或者printf "%x " [線程id]

將線程id轉換為16進制(字母要小寫)

bc是linux的計算器命令

第四步:執行

jstack [進程id] |grep -A 10 [線程id的16進制]」

查看線程狀態信息

方法二

第一步:使用

top命令,然後按shift+p按照CPU排序

找到佔用CPU過高的進程

第二步:使用

ps -mp pid -o THREAD,tid,time | sort -rn

獲取線程信息,並找到佔用CPU高的線程

第三步:使用

echo 'obase=16;[線程id]' | bc或者printf "%x " [線程id]

將需要的線程ID轉換為16進制格式

第四步:使用

jstack pid |grep tid -A 30 [線程id的16進制]

列印線程的堆棧信息

案例分析

場景描述

生產環境下JAVA進程高CPU佔用故障排查

解決過程

1、根據top命令,發現PID為2633的Java進程佔用CPU高達300%,出現故障。

2、找到該進程後,如何定位具體線程或代碼呢,首先顯示線程列表,並按照CPU佔用高的線程排序:

1

[root@localhost ~]# ps -mp 2633 -o THREAD,tid,time | sort -rn

顯示結果如下:

化主動為被動的方式,一方面減輕了運維工程師的工作,另一方面也減小了運維漏看或者忽略告警的情況發生。

❹ Linux裡面uptime命令作用是什麼

[root@oldboy ~]# uptime
11:45:25 up 5 days, 13:20, 3 users, load average: 0.00, 0.01, 0.05

uptime內容顯示的內容一次是系統時間,開機到現在的天數,用戶登錄數,以及平均負載。
核心是平均負載,其實就是【單位時間內的活躍進程數】。

2顆,單顆4核CPU為例:
1分鍾:10.00 #CPU處理進程1分鍾的繁忙程度,忙碌1分鍾。
5分鍾:8.01 #CPU處理進程5分鍾的繁忙程度,忙碌了5分鍾
15分鍾:5.05 #CPU處理進程15分鍾的繁忙程度,忙碌持續15分鍾,15分鍾內平均值5.

uptime:故障恢復了。
1分鍾:1.00 #CPU處理進程1分鍾的繁忙程度,忙碌1分鍾。
5分鍾:8.01 #CPU處理進程5分鍾的繁忙程度,忙碌了5分鍾
15分鍾:5.05 #CPU處理進程15分鍾的繁忙程度,忙碌持續15分鍾,15分鍾內平均值5.

==============================================
總結:15分鍾負載值12,是高是低呢
負載數值/總的核心數=1 #開始慢的臨界點,實際上1*70%==關注的臨界點。
12/8=1.2 大於1就說明有問題。

負載不要超過5,是臨界點。
2顆單顆4核CPU,共8核,負載就是8*70%=5左右。

需要關注負載的值:總的核心數*70%=關注的點

==================要掌握的============================
1.平均負載是運行隊列中活躍的進程數。
2.平均負載,1,5,15分鍾內的負載。
3.需要關注負載的值:總的核心數*70%=關注的點
4.輔助top,ps,uptime,sar,mpstat,pidstat,iostat,排查問題。
5.strace跟蹤進程系統調用。
6.記住幾個案例(面試講故事)。

面試官問:
你在工作中遇到過哪些生產故障,是怎麼解決的?
最好和資料庫相關(負載高),和web相關(PHP進程100%,JAVA內存泄漏)
==================要掌握的============================
***6.平均負載案例分析實戰\***
下面,我們以三個示例分別來看這三種情況,並用 stress、mpstat、pidstat 等工具,找出平均負載升高的根源。
stress 是 Linux 系統壓力測試工具,這里我們用作異常進程模擬平均負載升高的場景。
mpstat 是多核 CPU 性能分析工具,用來實時查看每個 CPU 的性能指標,以及所有 CPU 的平均指標。
pidstat 是一個常用的進程性能分析工具,用來實時查看進程的 CPU、內存、I/O 以及上下文切換等性能指標。

#如果出現無法使用mpstat、pidstat命令查看%wait指標建議更新下軟體包
yum install sysstats -y
yum install stress -y
stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s

***場景一:CPU 密集型進程\***

1.首先,我們在第一個終端運行 stress 命令,模擬一個 CPU 使用率 100% 的場景:

[root@oldboy ~]# stress --cpu 1 --timeout 600

2.接著,在第二個終端運行 uptime 查看平均負載的變化情況

# 使用watch -d 參數表示高亮顯示變化的區域(注意負載會持續升高)
[root@oldboy ~]# watch -d uptime

*3.最後,在第三個終端運行 mpstat 查看 CPU 使用率的變化情況*

# -P ALL 表示監控所有CPU,後面數字5 表示間隔5秒後輸出一組數據
[root@oldboy ~]# mpstat -P ALL 5

#單核CPU,所以只有一個all和0

4.從終端二中可以看到,1 分鍾的平均負載會慢慢增加到 1.00,而從終端三中還可以看到,正好有一個 CPU 的使用率為 100%,但它的 iowait 只有 0。這說明,平均負載的升高正是由於 CPU 使用率為 100% 。那麼,到底是哪個進程導致了 CPU 使用率為 100% 呢?可以使用 pidstat 來查詢

![](18.Linux系統管理-進程管理.assets/a.png)

# 間隔5秒輸出一組數據
[root@oldboy ~]# pidstat -u 5 1

#從這里可以明顯看到,stress進程的CPU使用率為100%。

- 模擬cpu負載高 `stress --cpu 1 --timeout 100`
- 通過uptime或w 查看 `watch -d uptime`
- 查看整體狀態mpstat -P ALL 1 查看每個cpu核心使用率
- 精確到進程: pidstat 1

****場景二:I/O 密集型進程\****

1.首先還是運行 stress 命令,但這次模擬 I/O 壓力,即不停地執行 sync

[root@oldboy ~]# stress --io 1 --timeout 600s #利用sync()
stress --hdd 8 --hdd-bytes 1g # hd harkdisk 創建進程去進程寫

*2.然後在第二個終端運行 uptime 查看平均負載的變化情況:*

[root@oldboy ~]# watch -d uptime
18:43:51 up 2 days, 4:27, 3 users, load average: 1.12, 0.65, 0.00

*3.最後第三個終端運行 mpstat 查看 CPU 使用率的變化情況:*

# 顯示所有 CPU 的指標,並在間隔 5 秒輸出一組數據
[root@oldboy ~]# mpstat -P ALL 5

#會發現cpu的與內核打交道的sys佔用非常高

*4.那麼到底是哪個進程,導致 iowait 這么高呢?我們還是用 pidstat 來查詢*

# 間隔5秒後輸出一組數據,-u 表示CPU指標
[root@oldboy ~]# pidstat -u 5 1

#可以發現,還是 stress 進程導致的。

- 通過stress 模擬大量進程讀寫 `stress --hdd 4 `
- 通過w/uptime查看系統負載信息 `watch -d uptime`
- 通過top/mpstat 排查 `mpstat -P ALL 1 或 top 按1`
- 確定是iowati `iostat 1查看整體磁碟讀寫情況 或iotop -o 查看具體哪個進程讀寫`
- 根據對應的進程,進行相關處理.

***場景三:大量進程的場景 高並發場景 \***
*當系統中運行進程超出 CPU 運行能力時,就會出現等待 CPU 的進程。*

*1.首先,我們還是使用 stress,但這次模擬的是 4 個進程*

[root@oldboy ~]# stress -c 4 --timeout 600

*2.由於系統只有 1 個 CPU,明顯比 4 個進程要少得多,因而,系統的 CPU 處於嚴重過載狀態*

*3.然後,再運行 pidstat 來看一下進程的情況:*

# 間隔5秒後輸出一組數據
[root@oldboy ~]# pidstat -u 5 1

*可以看出,4 個進程在爭搶 1 個 CPU,每個進程等待 CPU 的時間(也就是代碼塊中的 %wait 列)高達 75%。這些超出 CPU 計算能力的進程,最終導致 CPU 過載。*

****分析完這三個案例,我再來歸納一下平均負載與CPU\****
***平均負載提供了一個快速查看系統整體性能的手段,反映了整體的負載情況。但只看平均負載本身,我們並不能直接發現,到底是哪裡出現了瓶頸。所以,在理解平均負載時,也要注意:
平均負載高有可能是 CPU 密集型進程導致的;
平均負載高並不一定代表 CPU 使用率高,還有可能是 I/O 更繁忙了;
當發現負載高的時候,你可以使用 mpstat、pidstat 等工具,輔助分析負載的來源****

**系統負載的計算和意義**

進程以及子進程和線程產生的計算指令都會讓cpu執行,產生請求的這些進程組成"運行隊列",等待cpu執行,這個隊列就是系統負載, 系統負載是所有cpu的運行隊列的總和.

[root@oldboye ~]# w
20:25:48 up 95 days, 9:06, 1 user, load average: 2.92, 0.00, 0.00

//假設當前計算機有4個核心的cpu,當前的負載是2.92
cpu1 cpu2 cpu3 cpu4
2.94/4(個cpu核心) = 73%的cpu資源被使用,剩下27%的cpu計算資源是空想的

//假設當前的計算有2個核心的cpu,當前的負載是2.92
2.92/2 = 146% 已經驗證超過了cpu的處理能力

7. 日常故障排查流程(含日誌)

- w/uptime, 查看負載
- ps aux/top 看看 cpu百分比, io wait或者是內存佔用的高? (三高 cpu,io,內存)
- top檢查具體是哪個進程,找出可疑進程
- 追蹤這個進程使用情況,做什麼的?
- 看看對應**日誌**是否有異常
- 系統日誌: /var/log/messages(系統通用日誌) /var/log/secure(用戶登錄情況)
- 服務軟體的日誌

***3.那平均負載為多少時合理\***
*最理想的狀態是每個 CPU核心 上都剛好運行著一個進程,這樣每個 CPU 都得到了充分利用。所以在評判平均負載時,首先你要知道系統有幾個 CPU核心,這可以通過 top 命令獲取,或`grep 'model name' /proc/cpuinfo`*

系統平均負載被定義為在特定時間間隔內運行隊列中的平均進程數。如果一個進程滿足以下條件則其就會位於運行隊列中:
- 它沒有在等待I/O操作的結果
- 它沒有主動進入等待狀態(也就是沒有調用'wait')
- 沒有被停止(例如:等待終止)
《內容來自老男孩老師的課堂筆記》

❺ 請問在linux伺服器上作壓力測試如何監控伺服器的CPU和內存,採集數據並形成圖表(如曲線圖)

vmstat 1,文本顯示,1代表1s刷新一次
想要曲線的話,把vmstat的結果保存到文本里,然後切到excel下繪圖

如果不需要那麼短的周期,可用cacti,通過snmp調用,5分鍾一個周期。

❻ 如何在linux操作系統上做介面壓力測試

介紹個http_load壓力測試工具,http_load,類似的工具還有webbench、ab、Siege。
1、下載
官方網站:http://acme.com/software/http_load/

復制代碼
代碼如下:

cd /root
wget http://acme.com/software/http_load/http_load-12mar2006.tar.gz
tar xzf http_load-12mar2006.tar.gz

2、安裝

復制代碼
代碼如下:

cd http_load-12mar2006
make

執行完make,會在當前目錄生成一個http_load二進制文件。
3、使用方法

復制代碼
代碼如下:

root@www:~/http_load-12mar2006# ./http_load --help
usage: ./http_load [-checksum] [-throttle] [-proxy host:port] [-verbose] [-timeout secs] [-sip sip_file]
-parallel N | -rate N [-jitter]
-fetches N | -seconds N
url_file

One start specifier, either -parallel or -rate, is required.
One end specifier, either -fetches or -seconds, is required.
主要參數說明:
-parallel 簡寫-p :含義是並發的用戶進程數。
-rate 簡寫-r :含義是每秒的訪問頻率
-fetches 簡寫-f :含義是總計的訪問次數
-seconds簡寫-s :含義是總計的訪問時間
選擇參數時,-parallel和-rate選其中一個,-fetches和-seconds選其中一個。
示例:
http_load -parallel 50 -s 10 urls.txt
這段命令行是同時使用50個進程,隨機訪問urls.txt中的網址列表,總共訪問10秒。
http_load -rate 50 -f 5000 urls.txt
每秒請求50次,總共請求5000次停止。

4、基本的返回值
(1).49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds
說明在上面的測試中運行了49個請求,最大的並發進程數是2,總計傳輸的數據是289884bytes,運行的時間是10.0148秒
(2).5916 mean bytes/connection
說明每一連接平均傳輸的數據量289884/49=5916
(3).4.89274 fetches/sec, 28945.5 bytes/sec
說明每秒的響應請求為4.89274,每秒傳遞的數據為28945.5 bytes/sec
(4).msecs/connect: 28.8932 mean, 44.243 max, 24.488 min
說明每連接的平均響應時間是28.8932 msecs,最大的響應時間44.243 msecs,最小的響應時間24.488 msecs
(5).msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min
(6).HTTP response codes: code 200 -- 49
說明打開響應頁面的類型,如果403的類型過多,那可能要注意是否系統遇到了瓶頸。
特殊說明:這里,我們一般會關注到的指標是fetches/sec、msecs/connect
他們分別對應的常用性能指標參數Qpt-每秒響應用戶數和response time,每連接響應用戶時間。測試的結果主要也是看這兩個值。當然僅有這兩個指標並不能完成對性能的分析,我們還需要對伺服器的cpu、men進行分析,才能得出結論
5、如果你需要測試https,你必須將 Makefile中

復制代碼
代碼如下:

# CONFIGURE: If you want to compile in support for https, uncomment these
# definitions. You will need to have already built OpenSSL, available at
# <a href="http://www.openssl.org/">http://www.openssl.org/</a> Make sure the SSL_TREE definition points to the
# tree with your OpenSSL installation - depending on how you installed it,
# it may be in /usr/local instead of /usr/local/ssl.
SSL_TREE = /usr
SSL_DEFS = -DUSE_SSL
SSL_INC = -I$(SSL_TREE)/include
SSL_LIBS = -L$(SSL_TREE)/lib -lssl -lcrypto

由於使用到openssl,你必須安裝openssl和相應的開發環境

復制代碼
代碼如下:

apt-get install openssl
apt-get install libssl-dev</p> <p>find -name ssl.h
/usr/include/openssl/ssl.h

❼ Linux上有什麼比較專業測CPU的benchmark

用Linux自帶的bc計算器計算pi值的一種benchmark手段。這也正體現了我以前說的Linux是工程師的系統的說法,Linux集成了非常多的工程師所需要的工具。 其實很簡單,就是一行命令。 time echo 「scale=5000; 4*a(1)」 | bc -l -q time是計時程序。scale是精度,4*a(1)調用了反正切函數。由三角函數我們知道1的反正切是pi/4, pi=4* pi/4。 -l -q參數的意思請參照manpage。這一行其實就是讓bc計算1的反正切,計算精度是5000位。 有的人用tcsh作為shell的需要注意指定time工具的位置,/usr/bin/time。tcsh內部有一個內部命令time,輸出格式詭異。 我在unix-center的Ubuntu 上跑的結果如下。比我的x200好像慢點。x200好像是38s。

閱讀全文

與linuxcpu壓力測試相關的資料

熱點內容
程序員可以干什麼 瀏覽:70
績效考核權重分配演算法 瀏覽:524
android應用logo 瀏覽:898
光遇安卓服墓土商店什麼時候開 瀏覽:566
月收益翻倍的源碼 瀏覽:638
asop源碼放在哪裡 瀏覽:989
電腦伺服器密碼怎麼找 瀏覽:574
jdp轉換pdf 瀏覽:749
把pdf導入iphone 瀏覽:508
米哈游租賃的雲伺服器是哪個 瀏覽:524
android直接打電話 瀏覽:1016
ubuntu停止命令 瀏覽:283
cnc攻絲編程 瀏覽:869
換個手機號碼app怎麼注冊 瀏覽:320
怎麼下載小猴口算app 瀏覽:115
輕鏈app的貨怎麼樣 瀏覽:625
電腦里的u盤如何加密 瀏覽:371
我的世界全部版本伺服器下載地址 瀏覽:50
交換原理pdf 瀏覽:230
菜鳥驛站app怎麼邀請新人 瀏覽:449