記一次頻繁gc排查過程

故障描述

時間锡溯,監(jiān)控一直報警赶舆,某個接口的響應時間會周期性的變慢;檢查報警日志發(fā)現(xiàn)趾唱,報警機器都來自同一個機房涌乳;奇怪的是,其他機房的同一接口卻并沒有變慢甜癞;

排查過程

首先懷疑訪問的資源是不是有問題夕晓,檢查之后發(fā)現(xiàn)并沒有任何問題;向運維申請權限之后悠咱,查看機器的GC日志蒸辆,一看,嚇了一條析既,機器在不停的進行CMS GC,日志如下:

2017-07-10T00:27:38.561+0800: 222046.226: [GC (CMS Initial Mark) [1 CMS-initial-mark: 761762K(1048576K)] 866632K(1992320K), 0.0188394 secs] [Times: user=0.11 sys=0.00, real=0.02 secs] 
2017-07-10T00:27:38.581+0800: 222046.245: [CMS-concurrent-mark-start]
2017-07-10T00:27:38.992+0800: 222046.656: [CMS-concurrent-mark: 0.411/0.411 secs] [Times: user=0.85 sys=0.01, real=0.41 secs] 
2017-07-10T00:27:38.992+0800: 222046.656: [CMS-concurrent-preclean-start]
2017-07-10T00:27:38.996+0800: 222046.660: [CMS-concurrent-preclean: 0.004/0.004 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
2017-07-10T00:27:38.996+0800: 222046.660: [CMS-concurrent-abortable-preclean-start]
 CMS: abort preclean due to time 2017-07-10T00:27:44.134+0800: 222051.799: [CMS-concurrent-abortable-preclean: 5.137/5.138 secs] [Times: user=5.32 sys=0.06, real=5.14 secs] 
2017-07-10T00:27:44.135+0800: 222051.800: [GC (CMS Final Remark) [YG occupancy: 140252 K (943744 K)]2017-07-10T00:27:44.136+0800: 222051.800: [Rescan (parallel) , 0.0261302 secs]2017-07-10T00:27:44.162+0800: 222051.826: [weak refs processing, 0.0001257 secs]2017-07-10T00:27:44.162+0800: 222051.826: [class unloading, 0.0235377 secs]2017-07-10T00:27:44.185+0800: 222051.850: [scrub symbol table, 0.0064071 secs]2017-07-10T00:27:44.192+0800: 222051.856: [scrub string table, 0.0012990 secs][1 CMS-remark: 761762K(1048576K)] 902015K(1992320K), 0.0577149 secs] [Times: user=0.24 sys=0.00, real=0.06 secs] 
2017-07-10T00:27:44.193+0800: 222051.858: [CMS-concurrent-sweep-start]
2017-07-10T00:27:44.963+0800: 222052.627: [CMS-concurrent-sweep: 0.769/0.769 secs] [Times: user=0.80 sys=0.02, real=0.77 secs] 
2017-07-10T00:27:44.963+0800: 222052.627: [CMS-concurrent-reset-start]
2017-07-10T00:27:44.965+0800: 222052.629: [CMS-concurrent-reset: 0.002/0.002 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
2017-07-10T00:28:36.805+0800: 222104.470: [GC (Allocation Failure) 2017-07-10T00:28:36.805+0800: 222104.470: [ParNew
Desired survivor size 80510976 bytes, new threshold 6 (max 6)
- age   1:    1670280 bytes,    1670280 total
: 943744K->104832K(943744K), 0.0949423 secs] 1323361K->589707K(1992320K), 0.0951679 secs] [Times: user=0.53 sys=0.01, real=0.10 secs] 
2017-07-10T00:28:37.823+0800: 222105.488: [GC (Allocation Failure) 2017-07-10T00:28:37.824+0800: 222105.488: [ParNew
Desired survivor size 80510976 bytes, new threshold 1 (max 6)
- age   1:  106303472 bytes,  106303472 total
- age   2:    1043512 bytes,  107346984 total
: 943744K->104832K(943744K), 0.4966488 secs] 1428619K->717627K(1992320K), 0.4968997 secs] [Times: user=3.66 sys=0.01, real=0.50 secs] 
2017-07-10T00:29:20.274+0800: 222147.938: [GC (Allocation Failure) 2017-07-10T00:29:20.274+0800: 222147.939: [ParNew
Desired survivor size 80510976 bytes, new threshold 1 (max 6)
- age   1:  107347632 bytes,  107347632 total
: 943744K->104832K(943744K), 0.3041730 secs] 1556539K->867316K(1992320K), 0.3044353 secs] [Times: user=2.12 sys=0.01, real=0.30 secs] 
2017-07-10T00:29:20.580+0800: 222148.244: [GC (CMS Initial Mark) [1 CMS-initial-mark: 762484K(1048576K)] 867363K(1992320K), 0.0184973 secs] [Times: user=0.10 sys=0.01, real=0.02 secs] 
2017-07-10T00:29:20.599+0800: 222148.263: [CMS-concurrent-mark-start]
2017-07-10T00:29:21.034+0800: 222148.698: [CMS-concurrent-mark: 0.435/0.435 secs] [Times: user=0.91 sys=0.01, real=0.44 secs] 
2017-07-10T00:29:21.034+0800: 222148.698: [CMS-concurrent-preclean-start]
2017-07-10T00:29:21.040+0800: 222148.704: [CMS-concurrent-preclean: 0.006/0.006 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
2017-07-10T00:29:21.040+0800: 222148.704: [CMS-concurrent-abortable-preclean-start]
 CMS: abort preclean due to time 2017-07-10T00:29:26.197+0800: 222153.862: [CMS-concurrent-abortable-preclean: 5.157/5.157 secs] [Times: user=5.38 sys=0.07, real=5.16 secs] 
2017-07-10T00:29:26.199+0800: 222153.863: [GC (CMS Final Remark) [YG occupancy: 152740 K (943744 K)]2017-07-10T00:29:26.199+0800: 222153.863: [Rescan (parallel) , 0.0263032 secs]2017-07-10T00:29:26.225+0800: 222153.889: [weak refs processing, 0.0001888 secs]2017-07-10T00:29:26.225+0800: 222153.890: [class unloading, 0.0286006 secs]2017-07-10T00:29:26.254+0800: 222153.918: [scrub symbol table, 0.0113296 secs]2017-07-10T00:29:26.265+0800: 222153.930: [scrub string table, 0.0016177 secs][1 CMS-remark: 762484K(1048576K)] 915225K(1992320K), 0.0682597 secs] [Times: user=0.24 sys=0.00, real=0.07 secs] 
2017-07-10T00:29:26.267+0800: 222153.932: [CMS-concurrent-sweep-start]
2017-07-10T00:29:26.985+0800: 222154.650: [CMS-concurrent-sweep: 0.718/0.718 secs] [Times: user=0.77 sys=0.01, real=0.72 secs] 
2017-07-10T00:29:26.986+0800: 222154.650: [CMS-concurrent-reset-start]
2017-07-10T00:29:26.988+0800: 222154.652: [CMS-concurrent-reset: 0.003/0.003 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
2017-07-10T00:29:40.748+0800: 222168.412: [GC (Allocation Failure) 2017-07-10T00:29:40.748+0800: 222168.412: [ParNew
Desired survivor size 80510976 bytes, new threshold 6 (max 6)
- age   1:   40404536 bytes,   40404536 total
: 943744K->100515K(943744K), 0.1270597 secs] 1324617K->585666K(1992320K), 0.1273832 secs] [Times: user=0.73 sys=0.02, real=0.12 secs] 
2017-07-10T00:29:41.544+0800: 222169.208: [GC (Allocation Failure) 2017-07-10T00:29:41.544+0800: 222169.208: [ParNew
Desired survivor size 80510976 bytes, new threshold 2 (max 6)
- age   1:   67918336 bytes,   67918336 total
- age   2:   39428848 bytes,  107347184 total
: 939427K->104832K(943744K), 0.4560649 secs] 1424578K->782170K(1992320K), 0.4564709 secs] [Times: user=3.26 sys=0.01, real=0.46 secs] 
2017-07-10T00:29:42.002+0800: 222169.667: [GC (CMS Initial Mark) [1 CMS-initial-mark: 677338K(1048576K)] 796205K(1992320K), 0.0171894 secs] [Times: user=0.11 sys=0.00, real=0.02 secs] 

可以看到每隔一分鐘左右躬贡,由于Allocation Failure導致ParNew GC,而由于存活對象太大眼坏,導致又進行了CMS GC;
通過jmap發(fā)現(xiàn)果然每隔一段時間拂玻,內存中BaseEntry類的對象實例數(shù)目急劇增大,檢查業(yè)務代碼發(fā)現(xiàn)宰译,業(yè)務代碼中有段邏輯會周期性的獲取最新的IP列表檐蚜;而判斷列表是否有更新,是通過對文件內容md5判斷的沿侈,正常情況下闯第,文件變化頻率會很小,那為什么現(xiàn)在會頻繁更新呢缀拭?
調用接口發(fā)現(xiàn)咳短,IP服務返回的md5并沒有變化填帽,但本地文件的md5和服務端不一樣;打開文件發(fā)現(xiàn)咙好,本地文件存在亂碼篡腌;

問題的原因基本找到,應該是由于文件亂碼導致的敷扫,讓開發(fā)人員修改代碼哀蘑,在保存文件時指定編碼,問題得到解決葵第;

故障原因

線上問題是得到了解決绘迁,但是奇怪的是,同樣的代碼為什么其他機房不存在問題呢卒密?檢查服務器編碼配置:

image.png

服務器的Locale配置都是相同的缀台,但是通過jinfo查看java應用的file.encoding,返回的卻不一樣;

詢問運維人員哮奇,不同機房的差異膛腐,運維人員提到,由于發(fā)布系統(tǒng)故障鼎俘,部分機房的應用是通過手工運行發(fā)布腳本發(fā)布的哲身;這樣問題也就清楚了,應該是ssh會將本地的locale帶到服務器環(huán)境導致贸伐;具體的可以參考這篇文章

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末勘天,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子捉邢,更是在濱河造成了極大的恐慌脯丝,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伏伐,死亡現(xiàn)場離奇詭異宠进,居然都是意外死亡,警方通過查閱死者的電腦和手機藐翎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門材蹬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吝镣,你說我怎么就攤上這事堤器。” “怎么了赤惊?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長凰锡。 經常有香客問我未舟,道長圈暗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任裕膀,我火速辦了婚禮员串,結果婚禮上,老公的妹妹穿的比我還像新娘昼扛。我一直安慰自己寸齐,他們只是感情好,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布抄谐。 她就那樣靜靜地躺著渺鹦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蛹含。 梳的紋絲不亂的頭發(fā)上毅厚,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機與錄音浦箱,去河邊找鬼吸耿。 笑死,一個胖子當著我的面吹牛酷窥,可吹牛的內容都是我干的咽安。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼蓬推,長吁一口氣:“原來是場噩夢啊……” “哼妆棒!你這毒婦竟也來了?” 一聲冷哼從身側響起拳氢,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤募逞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后馋评,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體放接,經...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年留特,在試婚紗的時候發(fā)現(xiàn)自己被綠了纠脾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡蜕青,死狀恐怖苟蹈,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情右核,我是刑警寧澤慧脱,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站贺喝,受9級特大地震影響菱鸥,放射性物質發(fā)生泄漏宗兼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一氮采、第九天 我趴在偏房一處隱蔽的房頂上張望殷绍。 院中可真熱鬧,春花似錦鹊漠、人聲如沸主到。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽登钥。三九已至,卻和暖如春楞陷,著一層夾襖步出監(jiān)牢的瞬間怔鳖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工固蛾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留结执,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓艾凯,卻偏偏與公主長得像献幔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子趾诗,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理蜡感,服務發(fā)現(xiàn),斷路器恃泪,智...
    卡卡羅2017閱讀 134,628評論 18 139
  • 作者:一字馬胡 轉載標志 【2017-11-12】 更新日志 日期更新內容備注 2017-11-12新建文章初版 ...
    beneke閱讀 2,195評論 0 7
  • 本文轉自運維之路(id:HuashengPeng001)訂閱號 近年來,隨著計算機技術的飛速發(fā)展览效,以及行業(yè)信息的共...
    大數(shù)據之心閱讀 5,558評論 0 34
  • 分布式系統(tǒng)面臨的第一個問題就是數(shù)據分布却舀,即將數(shù)據均勻地分布到多個存儲節(jié)點。另外锤灿,為了保證可靠性和可用性挽拔,需要將數(shù)據...
    olostin閱讀 4,558評論 2 26
  • 之前有一個關系不錯的朋友螃诅,隔三差五的我們會在微信上聊聊工作和生活。 可是慢慢的我發(fā)現(xiàn),我成了她的“垃圾桶”术裸。 比如...
    心懷夢想閱讀 594評論 0 2