成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java服務(wù),內(nèi)存OOM了,如何快速定位?

開(kāi)發(fā) 開(kāi)發(fā)工具 后端
某Java服務(wù)(假設(shè)PID=10765)出現(xiàn)了OOM,如何快速定位?具體的,可以按照以下步驟,使用以下工具排查。

某Java服務(wù)(假設(shè)PID=10765)出現(xiàn)了OOM,如何快速定位?

Java服務(wù)出現(xiàn)OOM,最常見(jiàn)的原因是:

  • 內(nèi)存確實(shí)分配過(guò)小,內(nèi)存確實(shí)不夠用;
  • 某一個(gè)對(duì)象被頻繁申請(qǐng),卻沒(méi)有釋放,內(nèi)存不斷泄漏,導(dǎo)致內(nèi)存耗盡;
  • 某一個(gè)資源被頻繁申請(qǐng),系統(tǒng)資源耗盡,例如:不斷創(chuàng)建線程,不斷發(fā)起網(wǎng)絡(luò)連接;

更具體的,可以按照以下步驟,使用以下工具排查。

一、確認(rèn)是不是內(nèi)存本身就分配過(guò)小

方法:jmap -heap 10765

如上圖,可以查看新生代,老生代堆內(nèi)存的分配大小以及使用情況,看是否本身分配過(guò)小。

二、找到最耗內(nèi)存的對(duì)象

方法:jmap -histo:live 10765 | more

如上圖,輸入命令后,會(huì)以表格的形式顯示存活對(duì)象的信息,并按照所占內(nèi)存大小排序:

  • 實(shí)例數(shù);
  • 所占內(nèi)存大小;
  • 類名;

是不是很直觀?對(duì)于實(shí)例數(shù)較多,占用內(nèi)存大小較多的實(shí)例/類,相關(guān)的代碼就要針對(duì)性review了。

畫(huà)外音:需要說(shuō)明的是,jmap -histo:live會(huì)執(zhí)行一次FGC,如果仍無(wú)法定位,可dump內(nèi)存,通過(guò)Java內(nèi)存分析工具M(jìn)AT(Memory Analyzer Tool)線下進(jìn)行分析。

上圖中占內(nèi)存最多的對(duì)象是RingBufferLogEvent,共占用內(nèi)存18M,屬于正常使用范圍。

如果發(fā)現(xiàn)某類對(duì)象占用內(nèi)存很大(例如幾個(gè)G),很可能是類對(duì)象創(chuàng)建太多,且一直未釋放。例如:

  • 申請(qǐng)完資源后,未調(diào)用close()或dispose()釋放資源;
  • 消費(fèi)者消費(fèi)速度慢(或停止消費(fèi)了),而生產(chǎn)者不斷往隊(duì)列中投遞任務(wù),導(dǎo)致隊(duì)列中任務(wù)累積過(guò)多;

三、確認(rèn)是否是資源耗盡

工具:

  • pstree
  • netstat

查看進(jìn)程創(chuàng)建的線程數(shù),以及網(wǎng)絡(luò)連接數(shù),如果資源耗盡,也可能出現(xiàn)OOM。 這里介紹另一種方法,通過(guò)

  1. /proc/${PID}/fd 
  2. /proc/${PID}/task 

可以分別查看句柄詳情和線程數(shù)。

例如,某一臺(tái)線上服務(wù)器的sshd進(jìn)程PID是9339,執(zhí)行:

如上圖,sshd共占用了四個(gè)句柄:

  • 0 -> 標(biāo)準(zhǔn)輸入;
  • 1 -> 標(biāo)準(zhǔn)輸出;
  • 2 -> 標(biāo)準(zhǔn)錯(cuò)誤輸出;
  • 3 -> socket(容易想到是監(jiān)聽(tīng)端口);

sshd只有一個(gè)主線程PID為9339,并沒(méi)有多線程。

所以,只要

  1. ll /proc/${PID}/fd | wc -l 
  2. ll /proc/${PID}/task | wc -l (效果等同pstree -p | wc -l) 

就能知道進(jìn)程打開(kāi)的句柄數(shù)和線程數(shù)。

【本文為51CTO專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

戳這里,看該作者更多好文

 

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專欄
相關(guān)推薦

2019-11-05 08:24:34

JavaOOM快速定位

2017-08-21 23:50:45

線上內(nèi)存OOM

2022-10-10 08:05:34

線程池OOM問(wèn)題

2022-02-07 08:55:57

Go程序代碼

2022-06-27 11:20:13

工具內(nèi)存GO

2020-03-31 17:05:39

Redis熱 key代理

2023-03-20 17:27:54

Cpukafka

2023-10-30 22:23:12

Cacherkube版本

2023-03-10 08:24:27

OOMdump線程

2023-08-24 22:13:31

2017-08-19 23:21:14

線上CPU定位

2017-07-07 16:30:37

JavaOOM KillerBecome

2019-07-28 18:30:52

MySQL日志數(shù)據(jù)庫(kù)

2023-10-10 15:26:30

內(nèi)存泄露OOM

2025-06-11 02:02:00

2010-03-01 13:17:46

WCF單向服務(wù)

2023-02-26 10:18:24

數(shù)據(jù)庫(kù)SQL語(yǔ)句

2017-08-14 16:36:23

ASActivity內(nèi)存

2015-07-22 14:59:31

2022-12-09 14:40:16

CPU進(jìn)程快速定位
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久免费视频2 | 中文在线一区二区 | 国产高清一区二区 | 无码国模国产在线观看 | 精品视频一区二区三区在线观看 | 久久出精品 | 精品影院 | 浮生影院免费观看中文版 | 久久中文视频 | 久久人人网 | 久久成人18免费网站 | 国产精品一区视频 | 国产一区二区精品 | 中文在线一区二区 | 国产精品视频网 | 爱操av| 91精品国产一区二区三区香蕉 | 亚洲欧美日韩一区二区 | 国产精品自拍视频 | 国产精品大片 | 成人免费观看男女羞羞视频 | 视频在线日韩 | 在线观看日本高清二区 | 91传媒在线观看 | 逼逼视频 | 国产免费视频 | 女同av亚洲女人天堂 | 亚州精品天堂中文字幕 | 日韩毛片免费视频 | 狠狠的操 | 久久99精品久久久久久 | 久久久久亚洲精品 | 精品久久久久久亚洲精品 | 婷婷福利视频导航 | 成人毛片网站 | 欧美专区在线 | 国产乱码精品一区二区三区忘忧草 | 精品国产不卡一区二区三区 | 色视频在线播放 | 免费观看的av | 免费午夜视频在线观看 |