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

一次非常典型的 JVM OOM 事故

開發(fā) 前端
我解決過內(nèi)存溢出的套路,雖然很糙,但很實用,比如曾經(jīng)幫助藝龍支付團隊解決過訂單查詢內(nèi)存溢出問題、西南某航空公司用戶中心內(nèi)存溢出問題等等。

當面對 JVM OOM 時,你會緊張嗎 ? 會不會手足無措 ?

這篇文章,分享前段時間幫一位同學梳理面對 JVM OOM 事故時的解題思路。

圖片圖片

首先從對話中,我們可以看到內(nèi)存溢出呈現(xiàn)兩種情況:

  • 運行一段時間之后,CPU 飆高 ;
  • 服務假死,表現(xiàn)出來日志沒有任何輸出。

我的第一反應是:非常明顯的 JVM 內(nèi)存溢出表現(xiàn) ,不過不知道是爆炸性的內(nèi)存增長,還是緩慢的內(nèi)存增長。

于是,我回復:可以每隔一段時間 觀察 top -p Pid (進程號) 看看應用的內(nèi)存占用情況。

類似的效果見下圖:

圖片圖片

接下來,我讓他通過 jstat -gcutil pid 1000 看看 gc 的頻率 。

圖片圖片

從圖中,新生代 E 區(qū)和老年代基本都滿了 ,我基本可以確定是海量大對象產(chǎn)生導致 JVM OOM 了。

圖片圖片

定時任務這四個字如電光火石般在我眼前閃過,基本八九不離十了。

圖片圖片

接下來,他發(fā)了張那段時間的監(jiān)控圖:

圖片圖片

哇,這張圖太有畫面感了,我都能感覺到 GC 線程在四處滅火,但依然無法釋放內(nèi)存的彷徨。

最后,我有點擔心,是不是 JVM 內(nèi)存分配小了才導致 OOM 了,同學的回復是 : 12 G 。

我覺得內(nèi)存大小還可以 ,一般情況下通過 jmap -heap pid 來查看,示例圖如下:

圖片圖片

分析到這里,基本上我得到了如下的結論:

1、要查看代碼中是否有一次性查詢海量對象的操作 ;

2、或者有什么公共的對象一直在使用,而忘記了釋放;

3、12 G 對一般的小應用來講是綽綽有余的,而且他們的應用非高并發(fā)場景,是內(nèi)網(wǎng)系統(tǒng)。

圖片圖片

最后,我建議觀察在日志停的那個時刻到底做了哪些事情,那才是真正的案發(fā)現(xiàn)場

那到底是什么原因導致 JVM OOM 呢 ? 和我預期的基本一模一樣:

圖片圖片

SQL 語句類似下圖,查詢條件沒有拼接好,導致全表掃描。

圖片圖片

我們總結下,解決 JVM 內(nèi)存溢出問題的流程:

1、分析事故現(xiàn)場(CPU、內(nèi)存、日志);

2、通過  top -p Pid (進程號)分析進程資源占用,判斷是爆炸性的內(nèi)存增長,還是緩慢的內(nèi)存增長。

3、 jstat -gcutil pid 1000 看看 gc 的頻率 ,可以分析是否有大對象產(chǎn)生以及 查看 GC 頻率。

4、 jmap -heap pid 分析真實的 JVM 內(nèi)存占用 ,確認是否真的內(nèi)存分配得太小了。

5、 事故發(fā)生當時到底做了什么,有沒有出現(xiàn)類似于內(nèi)存或者 CPU 占用呈現(xiàn)脈沖飆高樣子。

6、 若有飆高的場景,分析彼時彼刻到底有哪些操作。

7、 若是緩慢增長,則考慮使用 MAT 結合排除法分析內(nèi)存占用。

上面的流程是我解決過內(nèi)存溢出的套路,雖然很糙,但很實用,比如曾經(jīng)幫助藝龍支付團隊解決過訂單查詢內(nèi)存溢出問題、西南某航空公司用戶中心內(nèi)存溢出問題等等。

最后,我想說:一定要注意 where 1 = 1 哦 ,真的出現(xiàn)太多次啦。

責任編輯:武曉燕 來源: 勇哥Java實戰(zhàn)
相關推薦

2019-01-16 09:20:42

架構設計JVM FullGC宕機事故

2021-12-27 10:08:16

Python編程語言

2020-10-24 13:50:59

Python編程語言

2020-08-24 07:34:39

網(wǎng)絡超時請求

2021-03-05 22:41:55

CDH集群CDH集群

2022-05-12 09:52:09

網(wǎng)絡架構HTTP跨域保護機制

2023-01-16 14:49:00

MongoDB數(shù)據(jù)庫

2020-11-16 12:35:25

線程池Java代碼

2022-06-06 11:31:31

MySQL數(shù)據(jù)查詢

2022-07-11 13:58:14

數(shù)據(jù)庫業(yè)務流程系統(tǒng)

2017-11-09 09:06:29

流量暴增優(yōu)化

2022-11-16 08:00:00

雪花算法原理

2021-04-13 08:54:28

dubbo線程池事故排查

2022-09-07 09:09:13

高并發(fā)架構

2022-10-25 18:00:00

Redis事務生產(chǎn)事故

2020-10-21 12:10:30

訂單號Java代碼

2022-06-30 19:00:00

高可用KeepalivedLinux

2011-06-28 10:41:50

DBA

2019-04-04 15:00:40

SQL索引數(shù)據(jù)庫

2020-09-25 07:57:42

生產(chǎn)事故系統(tǒng)
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品在线看 | 中文字幕在线观看日韩 | 欧美一区二区三区在线免费观看 | 成人欧美一区二区三区黑人孕妇 | 久久久www成人免费精品 | 国产亚洲欧美日韩精品一区二区三区 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 亚洲一区二区三区在线播放 | 99久久精品免费看国产小宝寻花 | 黄色亚洲 | 欧美激情国产精品 | 久久久www成人免费无遮挡大片 | 欧美精品一区二区三区四区 在线 | 午夜成人免费视频 | 中国xxxx性xxxx产国 | 日韩中文在线观看 | 国产性网 | 成人免费网站 | 欧美精品一区二区免费 | 欧美999| 激情在线视频网站 | 亚洲综合在线一区二区 | 中文字幕日韩一区 | 成人不卡一区二区 | 特黄色一级毛片 | 91麻豆精品国产91久久久久久 | 中文字幕一区二区三区不卡 | 日一区二区三区 | 亚洲黄色在线免费观看 | 亚洲一区二区久久 | 97av视频在线 | 国产韩国精品一区二区三区 | 国产毛片毛片 | 日本免费视频在线观看 | 国产精品精品视频 | 逼逼网 | 久久国产成人精品国产成人亚洲 | av一级一片 | 九九免费视频 | 日韩二区 | 天天看片天天干 |