JVM問(wèn)題定位和排查之linux下的性能監(jiān)控工具與命令

顯示系統(tǒng)整體資源使用情況--top

top是linux下常用的性能分析工具瓶逃,能夠?qū)崟r(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用情況。如圖所示:

image

top命令的輸出可以分為兩部分: 前半部分是系統(tǒng)統(tǒng)計(jì)信息扣讼,后半部分是進(jìn)程信息捶闸。

在統(tǒng)計(jì)信息中胯府,第一行是消息隊(duì)列信息,它的結(jié)果相當(dāng)于uptime命令宏粤。


image

從左到右依次為:

系統(tǒng)當(dāng)前時(shí)間脚翘、運(yùn)行時(shí)間、當(dāng)前登錄用戶數(shù)绍哎。load average表示系統(tǒng)的負(fù)載均衡来农,也就是任務(wù)隊(duì)列的平均長(zhǎng)度,三個(gè)值分別表示1分鐘蛇摸,5分鐘备图,15分鐘到現(xiàn)在的平均值。

第二行是進(jìn)程統(tǒng)計(jì)信息赶袄,分別總線程數(shù)揽涮、有正在運(yùn)行的線程數(shù)、睡眠進(jìn)程數(shù)饿肺、停止的進(jìn)程數(shù)蒋困、僵尸進(jìn)程數(shù)。

image

第三行是CPU統(tǒng)計(jì)信息敬辣,us表示用戶空間CPU占用率雪标,sy表示內(nèi)核空間CPU空間占用率零院、ni表示用戶進(jìn)程空間改變過(guò)優(yōu)先級(jí)的進(jìn)程CPU的占用率、id表示空閑CPU占用率村刨、wa表示等待輸入輸出的CPU時(shí)間百分比告抄、
hi表示中斷請(qǐng)求、si表示軟件中斷請(qǐng)求嵌牺。


image

在Mem行中打洼,從左到右表示物理內(nèi)存總量、已使用的物理內(nèi)存逆粹、空閑物理內(nèi)存募疮、內(nèi)核緩沖使用量
swap依次表示交換區(qū)總量、空閑交換區(qū)總量僻弹、緩沖交換區(qū)大小阿浓。


image

第二部分為進(jìn)程信息去,顯示各個(gè)進(jìn)程的資源使用情況蹋绽。


image
image

總結(jié): 一般是通過(guò)top命令芭毙,宏觀的觀察系統(tǒng)各個(gè)進(jìn)程對(duì)CPU的占用情況以及內(nèi)存使用情況。

監(jiān)控內(nèi)存和CPU----vmstat命令

vmstat也是一款功能比較全的性能檢測(cè)工具卸耘。 主要用來(lái)統(tǒng)計(jì)CPU稿蹲、內(nèi)存使用情況、swap使用情況登信息鹊奖。可以指定采樣周期和采樣次數(shù)涂炎。

如下實(shí)例:

意思是每秒采樣一次忠聚,一共采樣三次。


image
image

下面給出一個(gè)特殊的例子:

image

我們根據(jù)上面的命令輸出含義唱捣,可以看cs值還有us值两蟀,看到每秒上下文的切換次數(shù)和用戶CPU時(shí)間,表明系統(tǒng)上下文切換很頻繁震缭,用戶的CPU占用率很高赂毯。

總結(jié): vmstat工具是linux系統(tǒng)自帶的,可以查看內(nèi)存拣宰、交互分區(qū)党涕、I/O操作、上下文切換以及CPU的使用情況巡社。

監(jiān)控I/O使用---iostat命令

isstat可以提供詳細(xì)的IO信息膛堤,如下圖,命令的使用方式和vmstat一樣晌该,以下命令表示每秒采樣一次肥荔,合計(jì)兩次绿渣。如果只需要顯示磁盤情況,則可以使用如下命令:

iostat -d 1 2
image

顯示的各個(gè)列的含義如下:


image

總結(jié): 磁盤IO是稱為系統(tǒng)瓶頸的重要原因之一燕耿,所以我們一般可以通過(guò)這個(gè)命令去快速定位系統(tǒng)是都產(chǎn)生了大量的I/O操作中符。

多功能診斷器 pidstat

pidstat 是一個(gè)功能強(qiáng)大的性能檢測(cè)工具,也是Sysstat的組件之一誉帅。這個(gè)需要通過(guò)以下網(wǎng)址去下載:


image

安裝:

yum install pidstat

這個(gè)工具的強(qiáng)大之處在于不僅可以監(jiān)視進(jìn)程的性能情況淀散,也可以監(jiān)視線程的性能情況。

有如下的功能:

1.CPU使用率監(jiān)控

CPU使用率監(jiān)控主要是監(jiān)控java等程序運(yùn)行的CPU使用情況堵第,所以我們一般需要通過(guò)運(yùn)行命令:jps
獲取java程序的進(jìn)程pid吧凉,然后可以執(zhí)行如下命令:

image

以上命令中, -p表示指定進(jìn)程的進(jìn)程ID踏志, -u 參數(shù)表示對(duì)CPU使用率的監(jiān)控阀捅。

參數(shù) 1 3 表示每秒采樣1一次,一個(gè)采用三次针余。從上面輸出可以看出饲鄙,CPU的占用率幾乎是100%。

當(dāng)我們想要進(jìn)一步觀察進(jìn)程信息圆雁,它可以進(jìn)一步監(jiān)控線程的信息忍级,使用如下命令:

image

參數(shù) : -t 就是將系統(tǒng)性能的監(jiān)控細(xì)化到線程級(jí)別。

案例定位分析:

執(zhí)行如下命令


image

輸出


image

然后我們可以看到伪朽,java應(yīng)用程序之所以占如此高的CPU轴咱,是因?yàn)榫€程1204的原因。使用jstack輸出堆棧
jstack -l 1187 >/tmp/t.txt

觀察輸出的t.txt文件烈涮,可以看到這一段內(nèi)容:

image

可以看到朴肺,該線程的nid(native id)為0x4b4 轉(zhuǎn)為10進(jìn)制后,發(fā)現(xiàn)是1204.坚洽。戈稿。我們找到了java應(yīng)用程序中占用大量CPU內(nèi)存的線程。

2.I/O使用監(jiān)控

運(yùn)行命令:

pidstat -p 22796 -d -t 1 3

對(duì)進(jìn)程id為22796的java程序每秒采樣一次讶舰,一共三次

image

可以明顯的看到鞍盗,這里進(jìn)行了大量的寫入操作。

3.內(nèi)存監(jiān)控

使用pidstat命令還可以監(jiān)控指定進(jìn)程的內(nèi)存使用情況跳昼。
如使用如下命令:

pidstat -r -p 27233 1 5
image

image
image

部分摘自:
《實(shí)戰(zhàn)java虛擬機(jī)》

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末般甲,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鹅颊,更是在濱河造成了極大的恐慌欣除,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挪略,死亡現(xiàn)場(chǎng)離奇詭異历帚,居然都是意外死亡滔岳,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門挽牢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)谱煤,“玉大人,你說(shuō)我怎么就攤上這事禽拔×趵耄” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵睹栖,是天一觀的道長(zhǎng)硫惕。 經(jīng)常有香客問(wèn)我,道長(zhǎng)野来,這世上最難降的妖魔是什么恼除? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮曼氛,結(jié)果婚禮上豁辉,老公的妹妹穿的比我還像新娘。我一直安慰自己舀患,他們只是感情好徽级,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著聊浅,像睡著了一般餐抢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上低匙,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天弹澎,我揣著相機(jī)與錄音,去河邊找鬼努咐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛殴胧,可吹牛的內(nèi)容都是我干的渗稍。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼团滥,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼竿屹!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起灸姊,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤拱燃,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后力惯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體碗誉,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡召嘶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哮缺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弄跌。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖尝苇,靈堂內(nèi)的尸體忽然破棺而出铛只,到底是詐尸還是另有隱情,我是刑警寧澤糠溜,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布淳玩,位于F島的核電站,受9級(jí)特大地震影響非竿,放射性物質(zhì)發(fā)生泄漏蜕着。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一汽馋、第九天 我趴在偏房一處隱蔽的房頂上張望侮东。 院中可真熱鬧,春花似錦豹芯、人聲如沸悄雅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)宽闲。三九已至,卻和暖如春握牧,著一層夾襖步出監(jiān)牢的瞬間容诬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工沿腰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留览徒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓颂龙,卻偏偏與公主長(zhǎng)得像习蓬,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子措嵌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

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