系統(tǒng)硬件性能分析工具

1.硬件瓶頸

????? CPU、內(nèi)存珍德、磁盤I/O泣矛、網(wǎng)絡(luò)I/O旦棉、進程和線程

2. CPU評估:

????字段說明:

Procs(進程)

r: 運行和等待CPU時間片的進程數(shù),如果長期大于系統(tǒng)CPU的個數(shù)药薯,CPU遇到瓶頸绑洛,需要擴展CPU。

b: 等待資源的進程數(shù)童本,比如正在等待磁盤I/O真屯、網(wǎng)絡(luò)I/O等。

Memory(內(nèi)存)

swpd: 使用虛擬內(nèi)存大小穷娱,如果swpd的值不為0绑蔫,但是SI,SO的值長期為0泵额,這種情況不會影響系統(tǒng)性能配深。

free: 空閑物理內(nèi)存大小。

buff: 用作緩沖的內(nèi)存大小嫁盲。

cache: 用作緩存的內(nèi)存大小篓叶,如果cache的值大的時候,說明cache處的文件數(shù)多羞秤,如果頻繁訪問到的文件都能被cache處缸托,那么磁盤的讀IO bi會非常小。

Swap

si: 每秒從交換區(qū)寫到內(nèi)存的大小瘾蛋,由磁盤調(diào)入內(nèi)存俐镐。

so: 每秒寫入交換區(qū)的內(nèi)存大小,由內(nèi)存調(diào)入磁盤哺哼。

注意:內(nèi)存夠用的時候佩抹,這2個值都是0叼风,如果這2個值長期大于0時,系統(tǒng)性能會受到影響匹摇,磁盤IO和CPU資源都會被消耗咬扇。有些朋友看到空閑內(nèi)存(free)很少的或接近于0時,就認(rèn)為內(nèi)存不夠用了廊勃,不能光看這一點懈贺,還要結(jié)合si和so,如果free很少坡垫,但是si和so也很少(大多時候是0)梭灿,那么不用擔(dān)心,系統(tǒng)性能這時不會受到影響的冰悠。

IO(現(xiàn)在的Linux版本塊的大小為1kb)

bi: 每秒讀取的塊數(shù)

bo: 每秒寫入的塊數(shù)

注意:隨機磁盤讀寫的時候堡妒,這2個值越大(如超出1024k),能看到CPU在IO等待的值也會越大溉卓。

system(系統(tǒng))

in: 每秒中斷數(shù)皮迟,包括時鐘中斷。

cs: 每秒上下文切換數(shù)桑寨。

注意:上面2個值越大伏尼,會看到由內(nèi)核消耗的CPU時間會越大。

CPU(以百分比表示)

us: 用戶進程執(zhí)行時間百分比(usertime)

us的值比較高時尉尾,說明用戶進程消耗的CPU時間多爆阶,但是如果長期超50%的使用,那么我們就該考慮優(yōu)化程序算法或者進行加速沙咏。

sy: 內(nèi)核系統(tǒng)進程執(zhí)行時間百分比(system time)

sy的值高時辨图,說明系統(tǒng)內(nèi)核消耗的CPU資源多,這并不是良性表現(xiàn)肢藐,我們應(yīng)該檢查原因故河。

us + sy參考值為80%,如果us + sy大于80%窖壕,說明可能存在CPU不足

wa: IO等待時間百分比

wa的值高時忧勿,說明IO等待比較嚴(yán)重,這可能由于磁盤大量作隨機訪問造成瞻讽,也有可能磁盤出現(xiàn)瓶頸(塊操作)鸳吸。

id: 空閑時間百分比

3. 內(nèi)存評估:

????[root@PV-portal01 ~]# free -m

total? ? ? used? ? ? free? ? shared? ? buffers? ? cached

Mem:? ? ? ? ? 8000? ? ? 7864? ? ? ? 136? ? ? ? ? 0? ? ? ? 30? ? ? 4033

-/+ buffers/cache:? ? ? 3800? ? ? 4200

Swap:? ? ? ? 12191? ? ? 4991? ? ? 7200

? 應(yīng)用程序可用內(nèi)存數(shù)量: 程序可用? free + cached

– 經(jīng)驗值

應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存 > 70% 內(nèi)存充足

應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存<20% 內(nèi)存不足,需要增加內(nèi)存

20%<應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存<70%內(nèi)存基本夠用

4. 磁盤評估:

????iostat -d -k 1 10? ? ? ? #查看TPS和吞吐量信息

????iostat -d -x -k 1 10? ? ? #查看設(shè)備使用率(%util)速勇、響應(yīng)時間(await)

????iostat -c 1 10? ? ? ? ? ? #查看cpu狀態(tài)

[root@localhost ~]#? iostat -d -x -k 1

rkB/s每秒讀取數(shù)據(jù)量kB;

wkB/s每秒寫入數(shù)據(jù)量kB;

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

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

util 一秒中有百分幾的時間用于I/O操作养匈。接近100%時哼勇,表示磁盤帶寬跑滿,需 要優(yōu)化程序或者增加磁盤;

rkB/s呕乎、wkB/s根據(jù)系統(tǒng)應(yīng)用不同會有不同的值积担,但有規(guī)律遵循:長期、超大數(shù) 據(jù)讀寫猬仁,肯定不正常帝璧,需要優(yōu)化程序讀取。

svctm的值與await的值很接近湿刽,表示幾乎沒有I/O等待的烁,磁盤性能好,如果await 的值遠(yuǎn)高于svctm的值诈闺,則表示I/O隊列等待太長渴庆,需要優(yōu)化程序或更換更快磁 盤。

tps:該設(shè)備每秒的傳輸次數(shù)(Indicate the number of transfers per second that were issued to the device.)雅镊〗罄祝“一次傳輸”意思是“一次I/O請求”。多個邏輯請求可能會被合并為“一次I/O請求”仁烹∴途“一次傳輸”請求的大小是未知的。

kB_read/s:每秒從設(shè)備(drive expressed)讀取的數(shù)據(jù)量晃危;

kB_wrtn/s:每秒向設(shè)備(drive expressed)寫入的數(shù)據(jù)量僚饭;

kB_read:讀取的總數(shù)據(jù)量尉间;

kB_wrtn:寫入的總數(shù)量數(shù)據(jù)量;這些單位都為Kilobytes。上面的例子中霍弹,我們可以看到磁盤sda以及它的各個分區(qū)的統(tǒng)計數(shù)據(jù)岛宦,下面是各個分區(qū)的TPS私恬。(因為是瞬間值,所以總TPS并不嚴(yán)格等于各個分區(qū)TPS的總和)

4.1 根據(jù)device找到具體的分區(qū)和目錄

????1.查找dm-N對應(yīng)的掛載點?

顯示dev253-0,dev253-1,即主設(shè)備號為dev253(sda設(shè)備號為dev8,這是linux為設(shè)備生成的內(nèi)部設(shè)備號),次設(shè)備號為0,1?

????2.查看/dev/dm-N涮瞻,以及映射

即 dm-0對應(yīng)? rhel-root窒升, dm-1對應(yīng) rhel-swap

????3.查看磁盤狀況

????4.查看目錄狀況

可以看出來dm-0 對應(yīng)的就是目錄 /, dm-1 對應(yīng)swap分區(qū)

5. 網(wǎng)絡(luò)評估:

????5.1 ifstat

RX Pkts/Rate ?數(shù)據(jù)包接收流量(包的數(shù)量 每秒)

RX Errs/Drop ?丟包

TX Pkts/Rate ?數(shù)據(jù)包發(fā)送流量?

RX Data/Rate 數(shù)據(jù)接收流量 (字節(jié)數(shù) 每秒)

TX Data/Rate 數(shù)據(jù)發(fā)送流量

????5.2 iftop

1. yum -y install iftop

2. iftop -i ens192

第一行:寬帶顯示

中間部分:外部連接列表,即記錄了哪些ip正在和本機的網(wǎng)絡(luò)連接

中間部分右邊:實時參數(shù)分別是該讓問ip連接到本機2,10屉凯,40秒的平均流量

=>代表發(fā)送數(shù)據(jù)堂飞;<=代表接收數(shù)據(jù)

底部三行:代表發(fā)送,收到和全部網(wǎng)絡(luò)流量

cum:為運行iftop到目前的總流量

peak:流量峰值

rates:2s骏庸,10s,40s的平均流量

3.使用幫助:

iftop -h????顯示幫助

iftop -F?? ?顯示指定網(wǎng)段/ip的進出流量

?????????????iftop -F 10.10.1.0/24

下面這些選項都可以的通過按鍵切換:

iftop -n????顯示本機的ip叮叹,不加-n則顯示主機名终蒂;也可以iftop進入監(jiān)控后睁蕾,按n切換是否顯示ip;

iftop -t????切換顯示格式為2行/1行/只顯示發(fā)送的流量/只顯示接收的流量

iftop -N????顯示端口號或端口服務(wù)名稱

iftop -S?? ?切換是否顯示本機的端口信息

iftop -D????切換是否顯示遠(yuǎn)端目標(biāo)主機的端口信息

iftop -P????顯示端口號子眶;或者進入iftop瀑凝,按p切換是否顯示端口信息

iftop -s????切換是否顯示遠(yuǎn)程目標(biāo)主機的host信息

iftop 按鍵切換顯示

按p:切換是否顯示端口信息

按P:切換暫停/繼續(xù)顯示

按T:切換是否顯示每個連接的總流量

按o:切換是否固定只顯示當(dāng)前的連接

按l:打開屏幕過濾功能,輸入要過濾的字符臭杰,比如ip粤咪,按回車后,就只能顯示這個ip相關(guān)的流量信息

????????實現(xiàn)iftop -F X.X.X.X/24的功能

按j或k:可以向上或下滾動屏幕顯示連接記錄

按b:切換是否顯示平均流量圖形條

按B:切換計算2渴杆,10寥枝,40秒內(nèi)的平均流量

按L:切換顯示畫面上邊的刻度,刻度不同磁奖,流量圖形條就會有變化

按1或2或3:可以根據(jù)右側(cè)顯示的三列流量數(shù)據(jù)進行排序

按<:根據(jù)左邊的本機名和ip排序

按>:根據(jù)遠(yuǎn)端目標(biāo)主機的主機名或ip排序

按f:編輯過濾代碼囊拜,很少用

按!:可以使用shell命令比搭,很少用

q:退出監(jiān)控

????5.3 vnstat

記錄指定網(wǎng)卡每日的傳輸流量日志冠跷。是通過分析文件系統(tǒng)/proc實現(xiàn)的,而非基于網(wǎng)絡(luò)包的過濾敢辩,所以nstat不需要root權(quán)限就可以使用蔽莱。

yum -y install vnstat

vnstatd -d 初始化

1. vnstat -i ens192 -h ?顯示每小時的流量統(tǒng)計,默認(rèn)eth0網(wǎng)卡戚长,需指定網(wǎng)卡

2. vnstat -l -i ens192 ?顯示實時網(wǎng)卡流量

6. 進程和線程:

????6.1 pidstat

cpu使用情況統(tǒng)計(-u)

內(nèi)存使用情況統(tǒng)計(-r)

IO情況統(tǒng)計(-d)

[root@sx-sj-dportal-nengli-1 ~]# jps

25126 Jps

16189 Bootstrap

--cpu查看

[root@sx-sj-dportal-nengli-1 ~]# pidstat -p 16189 -u 1 5-u 監(jiān)控cpu

以上輸出盗冷,除最開頭一行顯示內(nèi)核版本、主機名同廉、日期和cpu架構(gòu)外仪糖,主要列含義如下:

09:48:12: pidstat獲取信息時間點

PID:?進程pid

%usr:?進程在用戶態(tài)運行所占cpu時間比率

%system:?進程在內(nèi)核態(tài)運行所占cpu時間比率

%CPU:?進程運行所占cpu時間比率

CPU:?指示進程在哪個核運行

Command:?拉起進程對應(yīng)的命令

執(zhí)行pidstat默認(rèn)輸出信息為系統(tǒng)啟動后到執(zhí)行時間點的統(tǒng)計信息,因而即使當(dāng)前某進程的cpu占用率很高迫肖,輸出中的值有可能仍為0锅劝。

[root@sx-sj-dportal-nengli-1 ~]# pidstat -p 16189 -u 1 5 -t-t監(jiān)控進程中的線程

Linux 3.10.0-693.11.1.el7.x86_64 (sx-sj-dportal-nengli-1.novalocal) 05/22/2018 _x86_64_ (8 CPU)

09:49:31 PM? UID? ? ? TGID? ? ? TID? ? %usr %system? %guest? ? %CPU? CPU? Command

09:49:32 PM? ? 0? ? 16189? ? ? ? -? ? 0.00? ? 0.00? ? 0.00? ? 0.00? ? 0? java

09:49:32 PM? ? 0? ? ? ? -? ? 16189? ? 0.00? ? 0.00? ? 0.00? ? 0.00? ? 0? |__java

09:49:32 PM? ? 0? ? ? ? -? ? 16191? ? 0.00? ? 0.00? ? 0.00? ? 0.00? ? 1? |__java

09:49:32 PM? ? 0? ? ? ? -? ? 16192? ? 0.00? ? 0.00? ? 0.00? ? 0.00? ? 4? |__java

09:49:32 PM? ? 0? ? ? ? -? ? 16193? ? 0.00? ? 0.00? ? 0.00? ? 0.00? ? 0? |__java

-- 內(nèi)存查看

以上各列輸出的含義如下:

minflt/s:?每秒次缺頁錯誤次數(shù)(minor page faults),次缺頁錯誤次數(shù)意即虛擬內(nèi)存地址映射成物理內(nèi)存地址產(chǎn)生的page fault次數(shù)

majflt/s:?每秒主缺頁錯誤次數(shù)(major page faults)蟆湖,當(dāng)虛擬內(nèi)存地址映射成物理內(nèi)存地址時故爵,相應(yīng)的page在swap中,這樣的page fault為major page fault隅津,一般在內(nèi)存使用緊張時產(chǎn)生

VSZ:?該進程使用的虛擬內(nèi)存(以kB為單位)

RSS:?該進程使用的物理內(nèi)存(以kB為單位)

%MEM:?該進程使用內(nèi)存的百分比

Command:?拉起進程對應(yīng)的命令

--io查看

[root@mytest1 ~]# pidstat -p 18513? 1 1 -d -t

Linux 3.10.0-514.el7.x86_64 (mytest1) 2018年05月22日 _x86_64_ (8 CPU)

21時54分53秒? UID? ? ? TGID? ? ? TID? kB_rd/s? kB_wr/s kB_ccwr/s? Command

21時54分54秒? ? 0? ? 18513? ? ? ? -? ? ? 0.00? ? ? 3.96? ? ? 0.00? java

21時54分54秒? ? 0? ? ? ? -? ? 18513? ? ? 0.00? ? ? 0.00? ? ? 0.00? |__java

21時54分54秒? ? 0? ? ? ? -? ? 18514? ? ? 0.00? ? ? 0.00? ? ? 0.00? |__java

21時54分54秒? ? 0? ? ? ? -? ? 18515? ? ? 0.00? ? ? 0.00? ? ? 0.00? |__java

21時54分54秒? ? 0? ? ? ? -? ? 18516? ? ? 0.00? ? ? 0.00? ? ? 0.00? |__java

21時54分54秒? ? 0? ? ? ? -? ? 18517? ? ? 0.00? ? ? 0.00? ? ? 0.00? |__java

kB_rd/s:?每秒進程從磁盤讀取的數(shù)據(jù)量(以kB為單位)

kB_wr/s:?每秒進程向磁盤寫的數(shù)據(jù)量(以kB為單位)

Command:?拉起進程對應(yīng)的命令

7.系統(tǒng)負(fù)載

????7.1 top

[root@master ~]# top

top - 05:34:32 up 162 days,? 6:45,? 5 users,? load average: 0.02, 0.01, 0.00

Tasks: 244 total,? 1 running, 243 sleeping,? 0 stopped,? 0 zombie

Cpu(s):? 0.1%us,? 0.2%sy,? 0.0%ni, 99.6%id,? 0.0%wa,? 0.0%hi,? 0.0%si,? 0.0%st

Mem:? 16335704k total,? 7641236k used,? 8694468k free,? 232644k buffers

Swap:? 8241144k total,? ? ? ? 0k used,? 8241144k free,? 4891276k cached

????7.2 uptime

[root@master ~]# uptime

05:34:47 up 162 days,? 6:45,? 5 users,? load average: 0.02, 0.01, 0.00

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末诬垂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子伦仍,更是在濱河造成了極大的恐慌结窘,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件充蓝,死亡現(xiàn)場離奇詭異隧枫,居然都是意外死亡喉磁,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門官脓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來协怒,“玉大人,你說我怎么就攤上這事确买〗锛ィ” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵湾趾,是天一觀的道長芭商。 經(jīng)常有香客問我,道長搀缠,這世上最難降的妖魔是什么铛楣? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮艺普,結(jié)果婚禮上簸州,老公的妹妹穿的比我還像新娘。我一直安慰自己歧譬,他們只是感情好岸浑,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瑰步,像睡著了一般矢洲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缩焦,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天读虏,我揣著相機與錄音,去河邊找鬼袁滥。 笑死盖桥,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的题翻。 我是一名探鬼主播揩徊,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嵌赠!你這毒婦竟也來了靴拱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤猾普,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后本谜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體初家,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了溜在。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陌知。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖掖肋,靈堂內(nèi)的尸體忽然破棺而出仆葡,到底是詐尸還是另有隱情,我是刑警寧澤志笼,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布沿盅,位于F島的核電站,受9級特大地震影響纫溃,放射性物質(zhì)發(fā)生泄漏腰涧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一紊浩、第九天 我趴在偏房一處隱蔽的房頂上張望窖铡。 院中可真熱鬧,春花似錦坊谁、人聲如沸费彼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽箍铲。三九已至,卻和暖如春阶界,著一層夾襖步出監(jiān)牢的瞬間虹钮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工膘融, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留芙粱,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓氧映,卻偏偏與公主長得像春畔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子岛都,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容