溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

常用機(jī)器性能評估工具

發(fā)布時間:2020-06-16 14:21:03 來源:網(wǎng)絡(luò) 閱讀:406 作者:鄒君安 欄目:網(wǎng)絡(luò)安全

 

楊海春,曾在從興技術(shù)有限公司擔(dān)任主要設(shè)計(jì)開發(fā)崗,熟悉移動計(jì)費(fèi)系統(tǒng)整體系統(tǒng)架構(gòu)。目前就職于騰訊計(jì)算機(jī)系統(tǒng)有限公司,擔(dān)任工程師職位,熟悉日志計(jì)費(fèi)系統(tǒng),離線計(jì)算等場景。

軟件系統(tǒng)跑在機(jī)器上,處理能力受硬件制約,所以,單機(jī)處理能力會有上限。評估機(jī)器處理能力的上限,檢查程序的瓶頸在哪,有助于程序性能分析。

主要的幾大硬件:CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤。本文主要結(jié)合本人經(jīng)驗(yàn)介紹這幾大硬件的性能評估工具。

1.CPU性能評估

1.1 vmstat 工具

使用舉例:

vmstat 1 10

第一個參數(shù):采樣頻率

第二個參數(shù):采樣次數(shù)


結(jié)果參數(shù):

--procs--

r:運(yùn)行和等待CPU時間片的進(jìn)程數(shù)

b:等待資源的進(jìn)程數(shù)。如等待網(wǎng)絡(luò)I/O

如果r值長期大于CPU的個數(shù), 則CPU遇到瓶頸

--cpu--

us:用戶進(jìn)程消耗CPU時間百分比

sy :內(nèi)核進(jìn)程消耗的CPU時間百分比

如上圖,跑了幾個耗cpu的程序,發(fā)現(xiàn)us長期接近100,cpu已經(jīng)跑滿了。這個時候,可能需要考慮優(yōu)化應(yīng)用服務(wù)算法了。

一般:如果us長時間大于50,需要考慮優(yōu)化程序算法等。

sy + us > 80 可能存在CPU瓶頸了

1.2 Sar工具

舉例:sar -u 1 5


%idle值高,表示CPU較空閑。

如果idle值持續(xù)低于10,表示系統(tǒng)中目前的瓶頸在CPU。

如上圖,CPU已經(jīng)達(dá)到瓶頸了。

2. 內(nèi)存性能評估

2.1 free 工具

舉例:free –g or free –m

-g:以GB為單位查看

-m:以MB為單位查看


關(guān)注第二行:

-buffers/cache=Mem行:used-buffers-cached

+buffers/cache=Mem行:free+buffers+cached

一般第二行 +buffers/cache 表示應(yīng)用程序可使用的內(nèi)存。

cached里的內(nèi)容,一般可以釋放給應(yīng)用程序使用。

釋放cached里的內(nèi)存,看是否可用:

echo 3 > /proc/sys/vm/drop_caches

再查看內(nèi)存:


發(fā)現(xiàn)末完全釋放,只釋放了一部分。(與上面的圖比較)

檢查:發(fā)現(xiàn)部分共享內(nèi)存占用,無法釋放,應(yīng)用程序也就無法使用這部分了。

刪除目前沒有使用的共享內(nèi)存:

ipcs -m | awk '$6 == 0 {system("ipcrm -m "$2)}'

再執(zhí)行

echo 3 > /proc/sys/vm/drop_caches

再執(zhí)行

free –m


cached里的內(nèi)存又釋放了一些。

剩下的,部分的共享內(nèi)存,應(yīng)用程序正常使用,無法釋放。

所以,真正可用的內(nèi)存,應(yīng)該是 2400M左右。

還可以使用cat /proc/meminfo查看


3. 磁盤性能評估

3.1 iostat工具

舉例:

 iostat -d -x -k 1 10

-d 表示,顯示設(shè)備(磁盤)使用狀態(tài)

-x將用于顯示和io相關(guān)的擴(kuò)展數(shù)據(jù)

-k某些使用block為單位的列強(qiáng)制使用Kilobytes為單位


await I/O請求的平均等待時間,單位毫秒;值越小,性能越好;

svctm I/O請求的平均服務(wù)時間,單位毫秒

%util 統(tǒng)計(jì)時間內(nèi)有百分幾的時間用于I/O操作。接近100,表示磁盤已經(jīng)接近滿負(fù)荷運(yùn)行了。

如上圖,如果await時間遠(yuǎn)大于svctm,表示等待I/O隊(duì)列的時候太大,磁盤已經(jīng)達(dá)到瓶頸了。

3.2 Sar工具

舉例:

sar –d 1 10


avwait:隊(duì)列占滿時傳送請求等待隊(duì)列空閑的平均時間。

avserv:完成傳送請求所需平均時間(毫秒)。

%util: 100磁盤已經(jīng)繁忙了。

看寫入速度,100多M每秒。要提高寫入速度,可以換更快的盤。

4. 網(wǎng)卡性能監(jiān)控

4.1 ss工具

舉例:

ss -a -tp -s|grep agent


ss –s

查看現(xiàn)有連接數(shù)等:


常用選項(xiàng):

-a 顯示所有的sockets

-l 顯示正在監(jiān)聽的

-n 顯示數(shù)字IP和端口,不通過域名服務(wù)器

-p 顯示使用socket的對應(yīng)的程序

-s 打印出統(tǒng)計(jì)信息。

5. 整體性能評估工具

5.1 Top工具

舉例:

 top


%us:指的是cpu用在用戶態(tài)程序上的時間;

%sy:指的是cpu用在內(nèi)核態(tài)程序上的時間;

%ni:指的是用在nice優(yōu)先級調(diào)整過的用戶態(tài)程序上的時間;

%id:指的是cpu空閑時間;

load average:

任務(wù)隊(duì)列的平均長度

1分鐘、5分鐘、15分鐘前到現(xiàn)在平均值

三個值長時間大于CPU核數(shù)的話,表示機(jī)器很繁忙。上圖開了8個耗CPU程序,可以發(fā)現(xiàn),1分鐘均值已經(jīng)越過CPU個數(shù)(機(jī)器CPU個數(shù)為8核)


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI