linux 一些常用的命令行監(jiān)控工具

top 按大寫的 F 或 O 鍵莽囤,然后按 a-z 可以將進(jìn)程按照相應(yīng)的列進(jìn)行排序, 然后回車。而大寫的 R 鍵可以將當(dāng)前的排序倒轉(zhuǎn)

列名 含義
PID 進(jìn)程id
PPID 父進(jìn)程id
RUSER Real user name
UID 進(jìn)程所有者的用戶id
USER 進(jìn)程所有者的用戶名
GROUP 進(jìn)程所有者的組名
TTY 啟動(dòng)進(jìn)程的終端名。不是從終端啟動(dòng)的進(jìn)程則顯示為 ?
PR 優(yōu)先級(jí)
NI nice值郭蕉。負(fù)值表示高優(yōu)先級(jí)祝谚,正值表示低優(yōu)先級(jí)
P 最后使用的CPU悠瞬,僅在多CPU環(huán)境下有意義
%CPU 上次更新到現(xiàn)在的CPU時(shí)間占用百分比
TIME 進(jìn)程使用的CPU時(shí)間總計(jì)锨阿,單位秒
TIME+ 進(jìn)程使用的CPU時(shí)間總計(jì),單位1/100秒
%MEM 進(jìn)程使用的物理內(nèi)存百分比
VIRT 進(jìn)程使用的虛擬內(nèi)存總量记罚,單位kb墅诡。VIRT=SWAP+RES
SWAP 進(jìn)程使用的虛擬內(nèi)存中,被換出的大小桐智,單位kb末早。
RES 進(jìn)程使用的、未被換出的物理內(nèi)存大小说庭,單位kb然磷。RES=CODE+DATA
CODE 可執(zhí)行代碼占用的物理內(nèi)存大小,單位kb
DATA 可執(zhí)行代碼以外的部分(數(shù)據(jù)段+棧)占用的物理內(nèi)存大小刊驴,單位kb
SHR 共享內(nèi)存大小姿搜,單位kb
nFLT 頁(yè)面錯(cuò)誤次數(shù)
nDRT 最后一次寫入到現(xiàn)在,被修改過(guò)的頁(yè)面數(shù)捆憎。
S 進(jìn)程狀態(tài)舅柜。D=不可中斷的睡眠狀態(tài),R=運(yùn)行,S=睡眠,T=跟蹤/停止,Z=僵尸進(jìn)程
COMMAND 命令名/命令行
WCHAN 若該進(jìn)程在睡眠,則顯示睡眠中的系統(tǒng)函數(shù)名
Flags 任務(wù)標(biāo)志躲惰,參考 sched.h

dmesg,查看系統(tǒng)日志

dmesg

iostat,磁盤IO情況監(jiān)控

iostat -xz 1

# r/s, w/s, rkB/s, wkB/s:分別表示每秒讀寫次數(shù)和每秒讀寫數(shù)據(jù)量(千字節(jié))致份。讀寫量過(guò)大,可能會(huì)引起性能問(wèn)題础拨。
# await:IO操作的平均等待時(shí)間氮块,單位是毫秒绍载。這是應(yīng)用程序在和磁盤交互時(shí),需要消耗的時(shí)間滔蝉,包括IO等待和實(shí)際操作的耗時(shí)击儡。如果這個(gè)數(shù)值過(guò)大,可能是硬件設(shè)備遇到了瓶頸或者出現(xiàn)故障锰提。
# avgqu-sz:向設(shè)備發(fā)出的請(qǐng)求平均數(shù)量曙痘。如果這個(gè)數(shù)值大于1,可能是硬件設(shè)備已經(jīng)飽和(部分前端硬件設(shè)備支持并行寫入)立肘。
# %util:設(shè)備利用率边坤。這個(gè)數(shù)值表示設(shè)備的繁忙程度,經(jīng)驗(yàn)值是如果超過(guò)60谅年,可能會(huì)影響IO性能(可以參照IO操作平均等待時(shí)間)茧痒。如果到達(dá)100%,說(shuō)明硬件設(shè)備已經(jīng)飽和融蹂。
# 如果顯示的是邏輯設(shè)備的數(shù)據(jù)旺订,那么設(shè)備利用率不代表后端實(shí)際的硬件設(shè)備已經(jīng)飽和。值得注意的是超燃,即使IO性能不理想区拳,也不一定意味這應(yīng)用程序性能會(huì)不好,可以利用諸如預(yù)讀取意乓、寫緩存等策略提升應(yīng)用性能樱调。

free,內(nèi)存使用情況

free -m

eg:

     total       used       free     shared    buffers     cached
Mem:          1002        769        232          0         62        421
-/+ buffers/cache:          286        715
Swap:          1153          0       1153

第一部分Mem行:
total 內(nèi)存總數(shù): 1002M
used 已經(jīng)使用的內(nèi)存數(shù): 769M
free 空閑的內(nèi)存數(shù): 232M
shared 當(dāng)前已經(jīng)廢棄不用,總是0
buffers Buffer 緩存內(nèi)存數(shù): 62M
cached Page 緩存內(nèi)存數(shù):421M

關(guān)系:total(1002M) = used(769M) + free(232M)

第二部分(-/+ buffers/cache):
(-buffers/cache) used內(nèi)存數(shù):286M (指的第一部分Mem行中的used – buffers – cached)
(+buffers/cache) free內(nèi)存數(shù): 715M (指的第一部分Mem行中的free + buffers + cached)

可見(jiàn)-buffers/cache反映的是被程序?qū)崒?shí)在在吃掉的內(nèi)存,而+buffers/cache反映的是可以挪用的內(nèi)存總數(shù).

第三部分是指交換分區(qū)

sar,查看網(wǎng)絡(luò)吞吐狀態(tài)

# sar命令在這里可以查看網(wǎng)絡(luò)設(shè)備的吞吐率。在排查性能問(wèn)題時(shí)届良,可以通過(guò)網(wǎng)絡(luò)設(shè)備的吞吐量笆凌,判斷網(wǎng)絡(luò)設(shè)備是否已經(jīng)飽和
sar -n DEV 1

#
# sar命令在這里用于查看TCP連接狀態(tài),其中包括:
# active/s:每秒本地發(fā)起的TCP連接數(shù)士葫,既通過(guò)connect調(diào)用創(chuàng)建的TCP連接乞而;
# passive/s:每秒遠(yuǎn)程發(fā)起的TCP連接數(shù),即通過(guò)accept調(diào)用創(chuàng)建的TCP連接慢显;
# retrans/s:每秒TCP重傳數(shù)量爪模;
# TCP連接數(shù)可以用來(lái)判斷性能問(wèn)題是否由于建立了過(guò)多的連接,進(jìn)一步可以判斷是主動(dòng)發(fā)起的連接荚藻,還是被動(dòng)接受的連接呻右。TCP重傳可能是因?yàn)榫W(wǎng)絡(luò)環(huán)境惡劣,或者服務(wù)器壓力過(guò)大導(dǎo)致丟包
sar -n TCP,ETCP 1

vmstat, 給定時(shí)間監(jiān)控CPU使用率, 內(nèi)存使用, 虛擬內(nèi)存交互, IO讀寫

2表示每2秒采集一次狀態(tài)信息, 1表示只采集一次(忽略既是一直采集)

vmstat 2 1

eg:
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 0 3499840 315836 3819660 0 0 0 1 2 0 0 0 100 0
0 0 0 3499584 315836 3819660 0 0 0 0 88 158 0 0 100 0
0 0 0 3499708 315836 3819660 0 0 0 2 86 162 0 0 100 0
0 0 0 3499708 315836 3819660 0 0 0 10 81 151 0 0 100 0
1 0 0 3499732 315836 3819660 0 0 0 2 83 154 0 0 100 0
r 表示運(yùn)行隊(duì)列(就是說(shuō)多少個(gè)進(jìn)程真的分配到CPU)鞋喇,我測(cè)試的服務(wù)器目前CPU比較空閑声滥,沒(méi)什么程序在跑,當(dāng)這個(gè)值超過(guò)了CPU數(shù)目,就會(huì)出現(xiàn)CPU瓶頸了落塑。這個(gè)也和top的負(fù)載有關(guān)系纽疟,一般負(fù)載超過(guò)了3就比較高,超過(guò)了5就高憾赁,超過(guò)了10就不正常了污朽,服務(wù)器的狀態(tài)很危險(xiǎn)。top的負(fù)載類似每秒的運(yùn)行隊(duì)列龙考。如果運(yùn)行隊(duì)列過(guò)大蟆肆,表示你的CPU很繁忙,一般會(huì)造成CPU使用率很高晦款。

b 表示阻塞的進(jìn)程,這個(gè)不多說(shuō)炎功,進(jìn)程阻塞,大家懂的缓溅。

swpd 虛擬內(nèi)存已使用的大小蛇损,如果大于0,表示你的機(jī)器物理內(nèi)存不足了坛怪,如果不是程序內(nèi)存泄露的原因淤齐,那么你該升級(jí)內(nèi)存了或者把耗內(nèi)存的任務(wù)遷移到其他機(jī)器。

free 空閑的物理內(nèi)存的大小袜匿,我的機(jī)器內(nèi)存總共8G更啄,剩余3415M。

buff Linux/Unix系統(tǒng)是用來(lái)存儲(chǔ)居灯,目錄里面有什么內(nèi)容祭务,權(quán)限等的緩存,我本機(jī)大概占用300多M

cache cache直接用來(lái)記憶我們打開的文件,給文件做緩沖穆壕,我本機(jī)大概占用300多M(這里是Linux/Unix的聰明之處待牵,把空閑的物理內(nèi)存的一部分拿來(lái)做文件和目錄的緩存其屏,是為了提高 程序執(zhí)行的性能喇勋,當(dāng)程序使用內(nèi)存時(shí),buffer/cached會(huì)很快地被使用偎行。)

si 每秒從磁盤讀入虛擬內(nèi)存的大小川背,如果這個(gè)值大于0,表示物理內(nèi)存不夠用或者內(nèi)存泄露了蛤袒,要查找耗內(nèi)存進(jìn)程解決掉熄云。我的機(jī)器內(nèi)存充裕,一切正常妙真。

so 每秒虛擬內(nèi)存寫入磁盤的大小缴允,如果這個(gè)值大于0,同上。bi 塊設(shè)備每秒接收的塊數(shù)量练般,這里的塊設(shè)備是指系統(tǒng)上所有的磁盤和其他塊設(shè)備矗漾,默認(rèn)塊大小是1024byte,我本機(jī)上沒(méi)什么IO操作薄料,所以一直是0敞贡,但是我曾在處理拷貝大量數(shù)據(jù)(2-3T)的機(jī)器上看過(guò)可以達(dá)到140000/s,磁盤寫入速度差不多140M每秒

bo 塊設(shè)備每秒發(fā)送的塊數(shù)量摄职,例如我們讀取文件誊役,bo就要大于0。bi和bo一般都要接近0谷市,不然就是IO過(guò)于頻繁蛔垢,需要調(diào)整。

in 每秒CPU的中斷次數(shù)歌懒,包括時(shí)間中斷

cs 每秒上下文切換次數(shù)啦桌,例如我們調(diào)用系統(tǒng)函數(shù),就要進(jìn)行上下文切換及皂,線程的切換甫男,也要進(jìn)程上下文切換,這個(gè)值要越小越好验烧,太大了板驳,要考慮調(diào)低線程或者進(jìn)程的數(shù)目,例如在apache和nginx這種web服務(wù)器中,我們一般做性能測(cè)試時(shí)會(huì)進(jìn)行幾千并發(fā)甚至幾萬(wàn)并發(fā)的測(cè)試碍拆,選擇web服務(wù)器的進(jìn)程可以由進(jìn)程或者線程的峰值一直下調(diào)若治,壓測(cè),直到cs到一個(gè)比較小的值感混,這個(gè)進(jìn)程和線程數(shù)就是比較合適的值了端幼。系統(tǒng)調(diào)用也是,每次調(diào)用系統(tǒng)函數(shù)弧满,我們的代碼就會(huì)進(jìn)入內(nèi)核空間婆跑,導(dǎo)致上下文切換,這個(gè)是很耗資源庭呜,也要盡量避免頻繁調(diào)用系統(tǒng)函數(shù)滑进。上下文切換次數(shù)過(guò)多表示你的CPU大部分浪費(fèi)在上下文切換,導(dǎo)致CPU干正經(jīng)事的時(shí)間少了募谎,CPU沒(méi)有充分利用扶关,是不可取的。

us 用戶CPU時(shí)間数冬,我曾經(jīng)在一個(gè)做加密解密很頻繁的服務(wù)器上节槐,可以看到us接近100,r運(yùn)行隊(duì)列達(dá)到80(機(jī)器在做壓力測(cè)試,性能表現(xiàn)不佳)。

sy 系統(tǒng)CPU時(shí)間铜异,如果太高地来,表示系統(tǒng)調(diào)用時(shí)間長(zhǎng),例如是IO操作頻繁熙掺。

id 空閑 CPU時(shí)間未斑,一般來(lái)說(shuō),id + us + sy = 100,一般我認(rèn)為id是空閑CPU使用率币绩,us是用戶CPU使用率蜡秽,sy是系統(tǒng)CPU使用率。

wt 等待IO CPU時(shí)間缆镣。

原文:https://mp.weixin.qq.com/s/jLfSZKYnBI2lg9sGLyYzJA

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末芽突,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子董瞻,更是在濱河造成了極大的恐慌寞蚌,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钠糊,死亡現(xiàn)場(chǎng)離奇詭異挟秤,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)抄伍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門艘刚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人截珍,你說(shuō)我怎么就攤上這事攀甚。” “怎么了岗喉?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵秋度,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我钱床,道長(zhǎng)荚斯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任诞丽,我火速辦了婚禮鲸拥,結(jié)果婚禮上拐格,老公的妹妹穿的比我還像新娘僧免。我一直安慰自己,他們只是感情好捏浊,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布懂衩。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪浊洞。 梳的紋絲不亂的頭發(fā)上牵敷,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音法希,去河邊找鬼枷餐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛苫亦,可吹牛的內(nèi)容都是我干的毛肋。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼屋剑,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼润匙!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起唉匾,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤孕讳,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后巍膘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體厂财,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年峡懈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蟀苛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡逮诲,死狀恐怖帜平,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情梅鹦,我是刑警寧澤裆甩,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站齐唆,受9級(jí)特大地震影響嗤栓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜箍邮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一茉帅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧锭弊,春花似錦堪澎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)钮呀。三九已至,卻和暖如春昨凡,著一層夾襖步出監(jiān)牢的瞬間爽醋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工便脊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蚂四,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓哪痰,卻偏偏與公主長(zhǎng)得像证杭,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子妒御,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

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