精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

開發(fā)導致的內(nèi)存泄漏問題,這樣排查不背鍋

新聞 前端
前些日子小組內(nèi)安排值班,輪流看顧我們的服務,主要做一些報警郵件處理、Bug 排查、運營 issue 處理的事。

 [[285755]]

由來

前些日子小組內(nèi)安排值班,輪流看顧我們的服務,主要做一些報警郵件處理、Bug 排查、運營 issue 處理的事。工作日還好,無論干什么都要上班的,若是輪到周末,那這一天算是毀了。

不知道是公司網(wǎng)絡廣了就這樣還是網(wǎng)絡運維組不給力,網(wǎng)絡總有問題,不是這邊交換機脫網(wǎng)了就是那邊路由器壞了,還偶發(fā)地各種超時,而我們靈敏地服務探測服務總能準確地抓住偶現(xiàn)的小問題,給美好的工作加點料。好幾次值班組的小伙伴們一起吐槽,商量著怎么避過服務保活機制,偷偷停了探測服務而不讓人發(fā)現(xiàn)(雖然也并不敢)。

前些天我就在周末處理了一次探測服務的鍋。

問題

網(wǎng)絡問題?

晚上七點多開始,我就開始不停地收到報警郵件,郵件顯示探測的幾個接口有超時情況。多數(shù)執(zhí)行棧都在:

  1. java.io.BufferedReader.readLine(BufferedReader.java:371
  2.  
  3. java.io.BufferedReader.readLine(BufferReader.java:389
  4.  
  5. java_io_BufferedReader$readLine.call(Unknown Source) 
  6.  
  7. com.domain.detect.http.HttpClient.getResponse(HttpClient.groovy:122
  8.  
  9. com.domain.detect.http.HttpClient.this$2$getResponse(HttpClient.groovy) 

這個線程棧的報錯我見得多了,我們設置的 HTTP DNS 超時是1s, connect 超時是 2s, read 超時是 3s,這種報錯都是探測服務正常發(fā)送了 HTTP 請求,服務器也在收到請求正常處理后正常響應了,但數(shù)據(jù)包在網(wǎng)絡層層轉發(fā)中丟失了,所以請求線程的執(zhí)行棧會停留在獲取接口響應的地方。

這種情況的典型特征就是能在服務器上查找到對應的日志記錄。而且日志會顯示服務器響應完全正常。與它相對的還有線程棧停留在 Socket connect 處的,這是在建連時就失敗了,服務端完全無感知。

我注意到其中一個接口報錯更頻繁一些,這個接口需要上傳一個 4M 的文件到服務器,然后經(jīng)過一連串的業(yè)務邏輯處理,再返回 2M 的文本數(shù)據(jù),而其他的接口則是簡單的業(yè)務邏輯,我猜測可能是需要上傳下載的數(shù)據(jù)太多,所以超時導致丟包的概率也更大吧。

根據(jù)這個猜想,群登上服務器,使用請求的 request_id 在近期服務日志中搜索一下,果不其然,就是網(wǎng)絡丟包問題導致的接口超時了。

當然這樣 leader 是不會滿意的,這個結論還得有人接鍋才行。于是趕緊聯(lián)系運維和網(wǎng)絡組,向他們確認一下當時的網(wǎng)絡狀態(tài)。網(wǎng)絡組同學回復說是我們探測服務所在機房的交換機老舊,存在未知的轉發(fā)瓶頸,正在優(yōu)化,這讓我更放心了,于是在部門群里簡單交待一下,算是完成任務。

問題爆發(fā)

本以為這次值班就起這么一個小波浪,結果在晚上八點多,各種接口的報警郵件蜂擁而至,打得準備收拾東西過周日單休的我措手不及。

這次幾乎所有的接口都在超時,而我們那個大量網(wǎng)絡 I/O 的接口則是每次探測必超時,難道是整個機房故障了么。

我再次通過服務器和監(jiān)控看到各個接口的指標都很正常,自己測試了下接口也完全 OK,既然不影響線上服務,我準備先通過探測服務的接口把探測任務停掉再慢慢排查。

結果給暫停探測任務的接口發(fā)請求好久也沒有響應,這時候我才知道沒這么簡單。

解決

內(nèi)存泄漏

于是趕快登陸探測服務器,首先是 top free df 三連,結果還真發(fā)現(xiàn)了些異常。

开发导致的内存泄漏问题,这样排查不背锅

我們的探測進程 CPU 占用率特別高,達到了 900%。

我們的 Java 進程,并不做大量 CPU 運算,正常情況下,CPU 應該在 100~200% 之間,出現(xiàn)這種 CPU 飆升的情況,要么走到了死循環(huán),要么就是在做大量的 GC。

使用 jstat -gc pid [interval] 命令查看了 java 進程的 GC 狀態(tài),果然,F(xiàn)ULL GC 達到了每秒一次。

开发导致的内存泄漏问题,这样排查不背锅

這么多的 FULL GC,應該是內(nèi)存泄漏沒跑了,于是使用 jstack pid > jstack.log 保存了線程棧的現(xiàn)場,使用 jmap -dump:format=b,file=heap.log pid 保存了堆現(xiàn)場,然后重啟了探測服務,報警郵件終于停止了。

jstat

jstat 是一個非常強大的 JVM 監(jiān)控工具,一般用法是:jstat [-options] pid interval

它支持的查看項有:

  • -class 查看類加載信息
  • -compile 編譯統(tǒng)計信息
  • -gc 垃圾回收信息
  • -gcXXX 各區(qū)域 GC 的詳細信息 如 -gcold

使用它,對定位 JVM 的內(nèi)存問題很有幫助。

排查

問題雖然解決了,但為了防止它再次發(fā)生,還是要把根源揪出來。

分析棧

棧的分析很簡單,看一下線程數(shù)是不是過多,多數(shù)棧都在干嘛。

  1. > grep 'java.lang.Thread.State' jstack.log | wc -l 
  2.  
  3. 464 

才四百多線程,并無異常。

  1. > grep -A 1 'java.lang.Thread.State' jstack.log | grep -v 'java.lang.Thread.State' | sort | uniq -c |sort -n 
  2.  
  3. 10 at java.lang.Class.forName0(Native Method) 
  4.  
  5. 10 at java.lang.Object.wait(Native Method) 
  6.  
  7. 16 at java.lang.ClassLoader.loadClass(ClassLoader.java:404
  8.  
  9. 44 at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method) 
  10.  
  11. 344 at sun.misc.Unsafe.park(Native Method) 

線程狀態(tài)好像也無異常,接下來分析堆文件。

下載堆 dump 文件

堆文件都是一些二進制數(shù)據(jù),在命令行查看非常麻煩,Java 為我們提供的工具都是可視化的,Linux 服務器上又沒法查看,那么首先要把文件下載到本地。

由于我們設置的堆內(nèi)存為 4G,所以 dump 出來的堆文件也很大,下載它確實非常費事,不過我們可以先對它進行一次壓縮。

gzip 是個功能很強大的壓縮命令,特別是我們可以設置 -1 ~ -9 來指定它的壓縮級別,數(shù)據(jù)越大壓縮比率越大,耗時也就越長,推薦使用 -6~7, -9 實在是太慢了,且收益不大,有這個壓縮的時間,多出來的文件也下載好了。

使用 MAT 分析 jvm heap

MAT 是分析 Java 堆內(nèi)存的利器,使用它打開我們的堆文件(將文件后綴改為 .hprof), 它會提示我們要分析的種類,對于這次分析,果斷選擇 memory leak suspect。

开发导致的内存泄漏问题,这样排查不背锅

從上面的餅圖中可以看出,絕大多數(shù)堆內(nèi)存都被同一個內(nèi)存占用了,再查看堆內(nèi)存詳情,向上層追溯,很快就發(fā)現(xiàn)了罪魁禍首。

开发导致的内存泄漏问题,这样排查不背锅

分析代碼

找到內(nèi)存泄漏的對象了,在項目里全局搜索對象名,它是一個 Bean 對象,然后定位到它的一個類型為 Map 的屬性。

這個 Map 根據(jù)類型用 ArrayList 存儲了每次探測接口響應的結果,每次探測完都塞到 ArrayList 里去分析,由于 Bean 對象不會被回收,這個屬性又沒有清除邏輯,所以在服務十來天沒有上線重啟的情況下,這個 Map 越來越大,直至將內(nèi)存占滿。

內(nèi)存滿了之后,無法再給 HTTP 響應結果分配內(nèi)存了,所以一直卡在 readLine 那。而我們那個大量 I/O 的接口報警次數(shù)特別多,估計跟響應太大需要更多內(nèi)存有關。

給代碼 owner 提了 PR,問題圓滿解決。

小結

其實還是要反省一下自己的,一開始報警郵件里還有這樣的線程棧:

  1. groovy.json.internal.JsonParserCharArray.decodeValueInternal(JsonParserCharArray.java:166)  
  2. groovy.json.internal.JsonParserCharArray.decodeJsonObject(JsonParserCharArray.java:132)  
  3. groovy.json.internal.JsonParserCharArray.decodeValueInternal(JsonParserCharArray.java:186)  
  4. groovy.json.internal.JsonParserCharArray.decodeJsonObject(JsonParserCharArray.java:132)  
  5. groovy.json.internal.JsonParserCharArray.decodeValueInternal(JsonParserCharArray.java:186)  

看到這種報錯線程棧卻沒有細想,要知道 TCP 是能保證消息完整性的,況且消息沒有接收完也不會把值賦給變量,這種很明顯的是內(nèi)部錯誤,如果留意后細查是能提前查出問題所在的,查問題真是差了哪一環(huán)都不行啊。

 

 

 

 

 

責任編輯:張燕妮 來源: 高效運維
相關推薦

2019-02-14 13:30:54

內(nèi)存泄露運維

2021-11-03 16:25:26

Linux磁盤空間命令

2022-12-09 09:43:41

前端測試

2018-10-19 16:35:20

運維

2017-09-25 10:52:27

2022-07-03 20:31:59

JVMJava虛擬機

2020-10-20 06:48:24

架構師CPU服務器

2017-09-12 16:18:22

ICO區(qū)塊鏈互聯(lián)網(wǎng)+

2019-12-03 13:57:38

CIO背鍋IT

2022-07-30 23:45:09

內(nèi)存泄漏檢測工具工具

2025-08-04 01:00:00

JavaScript內(nèi)存泄漏前端

2019-06-03 14:38:11

AWS挖掘機光纜

2020-02-20 16:21:46

遠程辦公

2018-06-09 23:18:25

2024-11-22 09:40:18

Visual內(nèi)存泄漏內(nèi)存

2024-11-21 09:30:38

內(nèi)存泄漏CPU

2018-08-07 10:54:02

HTTPS郵箱瀏覽器

2023-04-26 07:16:25

游戲掉幀CPU

2024-08-05 08:00:53

2020-01-03 10:19:28

goroutine泄漏系統(tǒng)
點贊
收藏

51CTO技術棧公眾號

日韩精品一区二区三区中文不卡| 成人性生交大片免费看视频在线 | 国产传媒免费观看| av片哪里在线观看| 99在线精品免费| 国产精品久久9| 青青操国产视频| 亚洲第一论坛sis| 欧美性感一类影片在线播放| 国产日产欧美一区二区| 天天操天天射天天| 久久国产麻豆精品| 97视频免费看| 国产黄a三级三级| 日韩美女毛片| 欧美日本高清视频在线观看| 日韩小视频在线播放| 日韩在线免费电影| 久久综合网色—综合色88| 成人黄色午夜影院| 欧美在线观看不卡| 亚洲国产一区二区在线观看 | 欧美日韩午夜剧场| 在线播放 亚洲| 男人的天堂在线| 国产成人午夜精品5599| 国产精品久久999| 日韩高清精品免费观看| 国产高清久久| 亚洲网在线观看| 日本三级日本三级日本三级极| 成人交换视频| 色综合天天综合网天天看片| 免费高清一区二区三区| 毛片在线不卡| 国产精品欧美一区喷水| 久久久水蜜桃| 黄色片一区二区三区| 精品一区二区三区免费毛片爱 | 99久久久国产精品免费蜜臀| 成人免费网视频| 国产三级理论片| 鲁大师成人一区二区三区| 国内精品免费午夜毛片| 男人的天堂久久久| 午夜久久免费观看| 综合国产在线观看| 一级黄色毛毛片| 欧美日韩国产传媒| 亚洲欧洲在线免费| 双性尿奴穿贞c带憋尿| 老汉色老汉首页av亚洲| 精品国产髙清在线看国产毛片 | 99精品久久久久久| 国产不卡一区二区三区在线观看| 99产精品成人啪免费网站| 老司机一区二区| 国产一区二区视频在线观看| 在线观看毛片视频| 九色综合狠狠综合久久| 成人h视频在线观看播放| 999视频在线| 丝袜美腿亚洲一区| 国产精品日本精品| 国产毛片毛片毛片毛片| 精品一区二区在线观看| 亚洲自拍偷拍一区| 高潮毛片7777777毛片| 成人av在线播放网址| 国产精品裸体一区二区三区| 免费国产羞羞网站视频| 99re这里只有精品视频首页| 蜜桃麻豆www久久国产精品| 青青青免费视频在线2| 久久男人中文字幕资源站| 日本成人黄色| 天天在线视频色| 亚洲免费伊人电影| 国产日韩欧美精品在线观看| 天天综合av| 日韩人在线观看| 亚洲欧美自拍另类日韩| 国内精品视频| 亚洲а∨天堂久久精品9966| jlzzjizz在线播放观看| 精品国产一区二区三区小蝌蚪| 色噜噜狠狠色综合网图区| 欧美成人综合色| 一本久道综合久久精品| 国产精品久久网| www.五月天激情| 久久伊人中文字幕| 日本黄色播放器| 久草在线资源福利站| 色猫猫国产区一区二在线视频| 牛夜精品久久久久久久| 玖玖玖视频精品| 国产丝袜一区二区三区免费视频| 精品在线观看一区| 精久久久久久| 国产精品自拍网| 秋霞网一区二区| 中文在线免费一区三区高中清不卡| 992tv成人免费观看| 第一福利在线视频| 欧美三级视频在线观看| 日本三级日本三级日本三级极| 精品日韩欧美一区| 九九热这里只有精品免费看| 久久久久久不卡| 国产91丝袜在线播放九色| 欧洲成人一区二区| 青春草免费在线视频| 在线观看91视频| 少妇搡bbbb搡bbb搡打电话| 国产一区二区三区四区五区传媒| 欧美成人午夜激情视频| 老熟妇一区二区三区啪啪| av在线综合网| 国产一二三四区在线观看| 成人在线视频播放| 精品91自产拍在线观看一区| 免费三级在线观看| 日本va欧美va精品发布| 精品不卡一区二区三区| av网站免费在线观看| 欧美伊人久久久久久久久影院| 国产女主播在线播放| 欧美激情国产在线| 国产精品久久久久久久久借妻 | 国产第一页在线观看| www.亚洲在线| 六月婷婷激情综合| 国产日本亚洲| 精品国产拍在线观看| 成年人晚上看的视频| 91免费视频网址| 欧美视频在线观看网站| 亚洲精品一区国产| 欧美理论电影在线播放| 97在线播放免费观看| 日本一二三四高清不卡| 男人天堂成人在线| 日本亚洲不卡| 97av在线视频| 无码h黄肉3d动漫在线观看| 亚洲国产成人91porn| 四川一级毛毛片| 欧美 日韩 国产精品免费观看| 国产一区香蕉久久| 日本在线视频站| 欧美精品第1页| 女人18毛片毛片毛片毛片区二| 日本午夜精品视频在线观看| 日韩av电影免费在线| 久久夜夜操妹子| 中文字幕国产亚洲2019| 最近日韩免费视频| 国产精品传媒入口麻豆| www.久久久久久久久久久| 亚洲91中文字幕无线码三区| 91在线观看欧美日韩| 亚洲小说区图片| 精品乱码亚洲一区二区不卡| 国产午夜福利片| 91麻豆精品秘密| 成人在线看视频| 精品国产91| 国产中文字幕91| 在线看福利影| 日韩av网站电影| 欧美性猛交xxxx乱大交hd | 欧美日韩精品亚洲精品| 国产91精品精华液一区二区三区 | 视频一区二区三区在线| 五月天婷亚洲天综合网鲁鲁鲁| 欧洲美女精品免费观看视频| 欧美不卡视频一区发布| 免费观看a视频| 色94色欧美sute亚洲线路一久| 我不卡一区二区| 国产一区二区影院| 国产精品专区在线| 国产一卡不卡| 亚洲jizzjizz日本少妇| av手机在线观看| 国产一区二区三区欧美| 国产成人久久精品77777综合| 亚洲国产精品一区二区尤物区| 中文字幕av网址| 国产一区二区在线电影| 国产原创popny丨九色| 欧美在线观看视频一区| 99理论电影网| 免费高清视频在线一区| 欧美日韩成人网| 国产精品视频一区二区久久| 日韩欧美自拍偷拍| 天天干,天天干| 亚洲黄色尤物视频| 国产人妻大战黑人20p| 国产精品123区| 手机在线看福利| 亚洲日本国产| 日韩最新中文字幕| 久久99久久人婷婷精品综合 | 亚洲自拍都市欧美小说| 亚洲xxxx3d| 先锋欧美三级| 国内精品小视频| 米奇精品一区二区三区| 精品亚洲一区二区| 亚洲第一精品网站| 欧美日韩精品电影| 天天干在线播放| 亚洲影视资源网| 久久嫩草捆绑紧缚| 久久精品一区二区三区不卡牛牛 | 欧美日韩福利视频| 在线免费看av| 亚洲男人7777| 五月激情六月婷婷| 欧美mv和日韩mv的网站| 国产精品久久久久久69| 在线看国产日韩| 国产成人无码一区二区在线播放| 亚洲美女视频在线| 国产亚洲精品久久久久久豆腐| 久久―日本道色综合久久| 国产乱国产乱老熟300部视频| 久久狠狠亚洲综合| 性chinese极品按摩| 狂野欧美一区| 看av免费毛片手机播放 | 91最新在线观看| 欧美一级二区| 1024av视频| 亚洲神马久久| 男女视频网站在线观看| 一区在线免费| 男女日批视频在线观看| 国内自拍视频一区二区三区| 粉嫩av一区二区三区天美传媒| 91欧美日韩| 一区二区三区四区在线视频| 日韩成人精品一区二区| 日韩av电影在线观看| av一区二区在线观看| 日本一区二区精品| 精品毛片免费观看| 日韩一区二区三区资源| 欧洲杯足球赛直播| 亚洲欧美久久久久一区二区三区| 欧美日韩精品一区二区视频| 亚洲欧美日本国产有色| 久久伦理在线| 欧美 国产 精品| 欧美性色综合| 久久精品国产sm调教网站演员| 亚洲毛片视频| 国产极品美女高潮无套久久久| 久热精品视频| 国产精品区在线| 国产在线视频一区二区| 日本黄色一级网站| www.成人网.com| 精品久久久久久中文字幕人妻最新| 97se狠狠狠综合亚洲狠狠| 永久免费成人代码| 国产精品第四页| 国产大片aaa| 色综合久久六月婷婷中文字幕| 无码人妻一区二区三区线| 欧美日韩日日骚| 精品人妻一区二区三区换脸明星| 精品国产91洋老外米糕| 视频午夜在线| 久久九九国产精品怡红院| 大黄网站在线观看| 国产精品成人在线| 欧美欧美在线| 欧美日韩一区二区三区在线观看免| 日本高清免费电影一区| 精品视频在线观看一区二区| 性欧美videos另类喷潮| 少妇黄色一级片| 国产成人av电影在线观看| 丰满圆润老女人hd| 亚洲欧美日韩在线| 久久久久久久久久久久久av| 欧美日韩成人综合| 成人免费观看在线视频| 亚洲一区av在线播放| 日本一本在线免费福利| 国产精品久久久久久网站| 亚洲免费一区三区| 性欧美精品一区二区三区在线播放 | 久久免费在线观看视频| 欧美亚洲国产一卡| 婷婷综合激情网| 久久精品免费播放| 欧美大电影免费观看| 97久草视频| 成人羞羞网站入口免费| 免费看又黄又无码的网站| 精品在线播放免费| 无码 人妻 在线 视频| 亚洲精品ww久久久久久p站| 中文字幕av第一页| 日韩成人性视频| 人妖欧美1区| 国产欧美一区二区三区久久人妖| 粉嫩av一区二区| 亚洲一区二区精品在线观看| 亚洲午夜激情在线| 亚洲精品在线视频播放| 久久综合九色综合欧美98| wwwav国产| 欧美性猛交一区二区三区精品| 国产又粗又猛视频| 一本色道久久综合狠狠躁篇怎么玩| 婷婷色在线播放| 92国产精品视频| 国产一区日韩| 国产精品成人久久电影| 国产一区二区三区av电影 | 日本www.色| 99麻豆久久久国产精品免费优播| 黄页网站免费观看| 欧美日韩精品免费| 黄色国产在线| 人九九综合九九宗合| 国产精品午夜av| 大荫蒂性生交片| 国产一区二区视频在线| 日韩在线免费观看av| 狠狠操狠狠色综合网| 黄色www视频| 97国产suv精品一区二区62| 精品亚洲a∨一区二区三区18| 欧美污视频久久久| 99精品福利视频| www.欧美com| 一区二区三区日韩精品视频| 一区二区精品视频在线观看| 色综合伊人色综合网| 精品国模一区二区三区| 久久偷看各类wc女厕嘘嘘偷窃| 国产一区二区你懂的| 91视频在线免费| 午夜精品成人在线视频| 丰满肉嫩西川结衣av| 欧美夫妻性生活视频| 国产91精品入| 国产精品成人久久电影| 久久综合成人精品亚洲另类欧美| 日本一级黄色大片| 日韩精品中文在线观看| 中文在线免费二区三区| 久久久久久久久一区二区| 久久久久久自在自线| 麻豆精品免费视频| 欧美日韩小视频| 免费网站免费进入在线| 成人久久18免费网站图片| 2023国产精品久久久精品双| 天堂在线一区二区三区| 一区二区三区中文在线| 亚洲AV午夜精品| 欧美中在线观看| 国产精品日韩精品中文字幕| 国产精品后入内射日本在线观看| 99精品国产99久久久久久白柏| 五月天综合激情网| 有码中文亚洲精品| 精品国产乱码久久久久久樱花| 国产成人在线小视频| jizz一区二区| 中文字幕人妻一区二区三区视频| 日韩中文字幕在线视频| 国产视频一区二| 欧美v在线观看| 亚洲国产精品传媒在线观看| 国产99对白在线播放| 97精品一区二区三区| 欧美在线观看视频一区| 精品国产乱码久久久久久1区二区| 天天爽夜夜爽夜夜爽精品视频 | 日韩在线播放视频| 国产成人一二片| 久久黄色免费看| 亚洲最大色网站| 欧美69xxxxx| 成人在线免费观看视视频| 亚洲福利专区| 国产黑丝一区二区| 欧美麻豆精品久久久久久| 黄网在线免费看| 中文字幕日韩精品久久| 成人午夜免费视频|