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

糟了,線上服務出現OOM了

開發 前端
MQ消費者的線程池,設置成4個線程消費,避免消費者同時處理過多的消息,讀取大量的Excel,導致內存占用過多的問題。當然線程個數參數,可以根據實際情況調整。

前言

前一段時間,公司同事的一個線上服務OOM的問題,我覺得挺有意思的,在這里跟大家一起分享一下。

我當時其實也參與了一部分問題的定位。

1、案發現場

他們有個mq消費者服務,在某一天下午,出現OOM了,導致服務直接掛掉。

當時我們收到了很多內存的報警郵件。

發現問題之后,運維第一時間,幫他們dump了當時的內存快照,以便于開發人員好定位問題。

之后,運維重啟了該服務,系統暫時恢復了正常。

大家都知道,如果出現了線上OOM問題,為了不影響用戶的正常使用,最快的解決辦法就是重啟服務。

但重啟服務治標不治本,只能臨時解決一下問題,如果不找到真正的原因,難免下次在某個不經意的時間點,又會出現OOM問題。

所以,有必要定位一下具體原因。

2、初步定位問題

當時運維dump下來的內存快照文件有3G多,太大了,由于公司內網限制,沒辦法及時給到開發這邊。

沒辦法,只能先從日志文件下手了。

在查日志之前,我們先查看了prometheus上的服務監控。查到了當時那個mq消費者服務的內存使用情況,該服務的內存使用率一直都比較平穩,從2022-09-26 14:16:29開始,出現了一個明顯的內存飆升情況。

根據以往經驗總結出來的,在追查日志時,時間點是一個非常重要的過濾條件。

所以,我們當時重點排查了2022-09-26 14:16:29前后5秒鐘的日志。

由于這個服務,并發量不大,在那段時間的日志量并不多。

所以,我們很快就鎖定了excel文件導入導出功能。

該功能的流程圖如下:

圖片

  1. 用戶通過瀏覽器上傳excel,調用文件上傳接口。
  2. 該接口會上傳excel到文件服務器。然后將文件url,通過mq消息,發送到mq服務器。
  3. mq消費者消費mq消息,從文件服務器中獲取excel數據,做業務處理,然后把結果寫入新的excel中。
  4. mq消費者將新excel文件上傳到文件服務器,然后發websocket消息通知用戶。
  5. 用戶收到通知結果,然后可以下載新的excel。

經過日志分析,時間點剛好吻合,從excel文件導入之后,mq消費者服務的內存使用率一下子飆升。

3、打不開dump文件

從上面分析我們得出初步的結論,線上mq消費者服務的OOM問題,是由于excel導入導出導致的。

于是,我們查看了相關excel文件導入導出代碼,并沒有發現明顯的異常。

為了找到根本原因,我們不得不把內存快照解析出來。

此時,運維把內存快照已經想辦法發給了相關的開發人員(我的同事)。

那位同事用電腦上安裝的內存分析工具:MAT(Memory Analyzer Tool),準備打開那個內存快照文件。

但由于該文件太大,占了3G多的內存,直接打開失敗了。

圖片

MemoryAnalyzer.ini文件默認支持打開的內存文件是1G,后來它將參數-xmx修改為4096m。

修改之后,文件可以打開了,但打開的內容卻有問題。

猛然發現,原來是JDK版本不匹配導致的。

他用的MAT工具是基于SunJDK,而我們生成環境用的OpenJDK,二者有些差異。

SunJDK采用JRL協議發布,而OpenJDK則采用GPL V2協議發布。兩個協議雖然都是開放源代碼的,但是在使用上的不同,GPL V2允許在商業上使用,而JRL只允許個人研究使用。

所以需要下載一個基于OpenJDK版本的MAT內存分析工具。

4、進一步分析

剛好,另一個同事的電腦上下載過OpenJDK版本的MAT內存分析工具。

把文件發給他幫忙分析了一下。

圖片

最后發現org.apache.poi.xssf.usermodel.XSSFSheet類的對象占用的內存是最多的。

圖片

目前excel的導入導出功能,大部分是基于apache的POI技術,而POI給我們提供了WorkBook接口。

常用的WorkBook接口實現有三種:

  • HSSFWorkbook:它是早期使用最多的工具,支持Excel2003以前的版本,Excel的擴展名是.xls。只能導出65535條數據,如果超過最大記錄條數會報錯,但不會出現內存溢出。
  • XSSFWorkbook:它可以操作Excel2003-Excel2007之間的版本,Excel的擴展名是.xlsx。最多可以導出104w條數據,會創建大量的對象存放到內存中,可能會導致內存溢出。
  • SXSSFWorkbook:它可以操作Excel2007之后的所有版本,Excel的擴展名是.xlsx。SXSSFWorkbook是streaming版本的XSSFWorkbook,它只會保存最新的rows在內存里供查看,以前的rows都會被寫入到硬盤里。用磁盤空間換內存空間,不會導致內存溢出。

看到了這個類,可以驗證之前我們通過日志分析問題,得出excel導入導出功能引起OOM的結論,是正確的。

那個引起OOM問題的功能,剛好使用了XSSFWorkbook處理excel,一次性創建了大量的對象。

關鍵代碼如下:

XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(file));
XSSFSheet sheet = wb.getSheetAt(0);

我們通過MAT內存分析工具,已經確定OOM問題的原因了。接下來,最關鍵的一點是:如何解決這個問題呢?

5、如何解決問題?

根據我們上面的分析,既然XSSFWorkbook在導入導出大excel文件時,會導致內存溢出。那么,我們改成SXSSFWorkbook不就行了?

關鍵代碼改動如下:

XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(file));
SXSSFWorkbook swb = new SXSSFWorkbook(wb,100);
SXSSFSheet sheet = (SXSSFSheet) swb.createSheet("sheet1");

使用SXSSFWorkbook將XSSFWorkbook封裝了一層,其中100表示excel一次讀入內存的最大記錄條數,excel中其余的數據將會生成臨時文件保存到磁盤上。這個參數,可以根據實際需要調整。

還有一點非常重要:

sheet.flushRows();

需要在程序的結尾處加上上面的這段代碼,不然生成的臨時文件是空的。

這樣調整之后,問題被暫時解決了。

此外,順便說一句,在使用WorkBook接口的相關實現類時,用完之后,要記得調用close方法及時關閉喔,不然也可能會出現OOM問題。

6、后續思考

其實,當時我建議過使用阿里開源的EasyExcel解決OOM的問題。

但同事說,excel中有很多樣式,在導出的新excel中要保留之前的樣式,同時增加一列,返回導入的結果。

如果使用EasyExcel不太好處理,使用原始的Workbook更好處理一些。

但是使用mq異步導入excel文件這套方案,如果并發量大的話,任然可能會出現OOM問題,有安全隱患。

因此,有必要調整一下mq消費者。

后來,mq消費者的線程池,設置成4個線程消費,避免消費者同時處理過多的消息,讀取大量的excel,導致內存占用過多的問題。當然線程個數參數,可以根據實際情況調整。

責任編輯:姜華 來源: 蘇三說技術
相關推薦

2023-03-10 08:24:27

OOMdump線程

2020-09-22 08:06:45

代碼事故

2017-08-21 23:50:45

線上內存OOM

2022-03-16 07:58:02

OOMdubbo內存

2020-07-08 09:50:37

Java內存快速定位

2024-10-10 15:32:51

2021-10-18 22:29:54

OOMJava Out Of Memo

2023-10-30 22:23:12

Cacherkube版本

2023-02-06 09:31:59

zookeeperRPC框架推空保護

2024-03-18 08:22:15

OOM問題java線上問題

2021-06-04 15:58:53

CPU排查OOM

2019-12-10 09:42:57

OOM運維內存

2021-07-07 09:23:11

Java應用遷移

2025-07-29 08:25:57

2020-07-09 09:08:24

Java系統故障

2023-12-04 09:14:00

數據庫MySQL

2020-06-15 08:03:17

大文件OOM內存

2010-05-14 10:12:56

工資GDP

2019-11-05 08:24:34

JavaOOM快速定位

2018-01-24 10:06:34

服務器市場新情況
點贊
收藏

51CTO技術棧公眾號

国产999在线观看| 精品久久久久av影院| 一区二区三区电影| a天堂在线观看视频| 国产日韩欧美一区二区三区在线观看| 亚洲欧美国产精品久久久久久久| 中日韩av在线播放| 91九色在线播放| 国产日韩精品一区| 日韩免费观看高清完整版在线观看| 国产美女精品一区二区三区| 欧美激情女人20p| 在线观看国产精品一区| 精品国产不卡一区二区| 日韩欧美亚洲范冰冰与中字| 欧美xxxx吸乳| 国产小视频免费在线网址| 韩国欧美一区二区| 日韩美女免费线视频| 久久无码精品丰满人妻| 成人一区不卡| 精品亚洲一区二区| 古装做爰无遮挡三级聊斋艳谭| 无遮挡在线观看| 亚洲你懂的在线视频| 欧美日韩高清在线一区| 黄频网站在线观看| 极品少妇xxxx精品少妇偷拍| 欧洲中文字幕国产精品| 久久精品视频9| 亚洲国产老妈| 日韩视频一区在线| 性欧美一区二区| 日韩系列在线| 亚洲黄色成人网| 亚洲AV成人精品| 色综合视频一区二区三区日韩| 欧美日韩在线一区| 成年人网站国产| 密臀av在线| 亚洲国产乱码最新视频 | 2019中文字幕在线免费观看| 午夜免费激情视频| 久久精品影视| 精品国产一区二区三区四区在线观看| xxx在线播放| 免费成人网www| 亚洲免费精彩视频| 在线免费看黄视频| 国产精品欧美日韩一区| 亚洲欧美日韩在线一区| 免费看黄色aaaaaa 片| 久9re热视频这里只有精品| 亚洲成人网在线| 午夜不卡久久精品无码免费| 136国产福利精品导航网址应用| 日韩视频免费观看高清在线视频| 中文字幕第66页| 日韩综合一区二区三区| 精品欧美黑人一区二区三区| 在线播放av网址| 国产精品45p| 亚洲精品国产精品乱码不99按摩 | 久久久久国色av免费观看性色| 青青草原免费观看| 欧美午夜视频| 欧美亚洲成人xxx| 免费一级a毛片| 青草av.久久免费一区| 国产玖玖精品视频| 99热这里只有精品1| 国产丶欧美丶日本不卡视频| http;//www.99re视频| 污污网站免费在线观看| 久久精品亚洲精品国产欧美kt∨ | 麻豆视频在线| 亚洲国产裸拍裸体视频在线观看乱了 | 日本中文字幕在线看| 亚洲精品日日夜夜| 你懂的av在线| www.26天天久久天堂| 日韩一区二区三区三四区视频在线观看| 无套内谢丰满少妇中文字幕| 精品久久97| 亚洲人成电影在线| 手机在线免费看毛片| 在线成人黄色| 国产欧美在线观看| 人妻夜夜爽天天爽| 国产午夜一区二区三区| 9191国产视频| 欧美特大特白屁股xxxx| 日韩欧美高清dvd碟片| 亚洲av综合一区二区| 亚洲精品网址| 日韩av免费在线播放| 国产精品无码免费播放| 成人免费毛片嘿嘿连载视频| 日韩国产一区久久| 高清电影在线观看免费| 91九色02白丝porn| 国产综合内射日韩久| 欧美aaaa视频| 91精品国产高清久久久久久| 一二区在线观看| 99精品视频一区二区三区| 精品91一区二区三区| 日韩欧美看国产| 精品国产三级a在线观看| 国产白丝一区二区三区| 亚洲人成久久| 91青青草免费观看| 欧美成年黄网站色视频| 色诱视频网站一区| 国产一线在线观看| 亚洲一区 二区 三区| 国产精品一区二区久久精品| 四虎免费在线观看| 亚洲一区二区偷拍精品| 午夜剧场在线免费观看| 国内亚洲精品| 日韩av免费在线看| 天天操天天干天天干| 亚洲精品久久久蜜桃| 色一情一区二区三区| 国产一区二区三区四区五区| 97视频免费观看| 国产毛片久久久久| 亚洲欧美怡红院| 潘金莲激情呻吟欲求不满视频| 精品一区毛片| 日本国产精品视频| 天堂在线观看av| 亚洲成人手机在线| 国产人成视频在线观看| 怡红院精品视频在线观看极品| 国产专区欧美专区| 中文字幕在线播放| 欧美日韩精品久久久| 欧美成人国产精品一区二区| 亚洲欧美日韩一区在线观看| 久久99精品久久久久久秒播放器 | 七七成人影院| 日韩精品一区二区三区视频在线观看 | 亚洲动漫精品| 日韩美女毛茸茸| 精品电影在线| 欧美中文一区二区三区| 国产又粗又硬视频| 蜜桃一区二区三区在线观看| 日韩一区不卡| av在线精品| 美女久久久久久久| 亚洲精品国偷拍自产在线观看蜜桃| 一区二区三区四区精品在线视频| 日韩av成人网| 国产欧美大片| 欧美福利一区二区三区| 午夜日韩成人影院| 色黄久久久久久| 91theporn国产在线观看| 中文字幕在线一区二区三区| 欧美伦理片在线观看| 99视频精品全国免费| 2014亚洲精品| 小早川怜子影音先锋在线观看| 亚洲欧美另类自拍| 中文字幕在线播放日韩| 亚洲人吸女人奶水| 荫蒂被男人添免费视频| 久久先锋影音| 国产欧美自拍视频| 青草久久视频| 国产伦精品免费视频| 天堂av中文在线| 日韩电影第一页| 中文字幕+乱码+中文字幕明步| 亚洲人成伊人成综合网小说| 你懂的在线观看网站| 日欧美一区二区| 97久久国产亚洲精品超碰热| 亚州av一区| 91九色在线视频| 美女高潮视频在线看| 色综久久综合桃花网| 好吊色一区二区三区| 在线视频一区二区三区| jizz亚洲少妇| 久久久久亚洲蜜桃| 天天爽夜夜爽视频| 日韩国产精品91| 成人av在线不卡| 久久中文字幕av一区二区不卡| 99久热re在线精品996热视频| 成人直播视频| 欧美国产在线电影| 中文字幕在线免费| 日韩福利在线播放| www.久久色| 精品视频1区2区| 欧美不卡视频在线观看| 综合av第一页| 日本欧美一区二区三区不卡视频| 国产精品99久久久久久宅男| 无码无遮挡又大又爽又黄的视频| 欧美日韩影院| 亚洲一区二区不卡视频| 亚洲日本三级| 精品国产二区在线| 久久99成人| 国产色视频一区| 日韩伦理在线一区| 欧美大片在线影院| 国内外激情在线| 国产亚洲欧美另类中文| 天堂在线中文| 亚洲аv电影天堂网| 国产精品探花视频| 欧美精品在线一区二区| 无码人妻丰满熟妇区五十路| 午夜一区二区三区视频| 妺妺窝人体色www聚色窝仙踪| 中文字幕一区二区三中文字幕| 中出视频在线观看| 成人av在线影院| 亚洲午夜久久久久久久久| 国产精品香蕉一区二区三区| 亚洲精品综合在线观看| 美女任你摸久久| 色综合天天色综合| 日日欢夜夜爽一区| 日日噜噜噜噜久久久精品毛片| 久久国产精品亚洲77777| 精品国产免费av| 国产精品试看| 免费大片在线观看| 视频一区二区三区入口| 国产av人人夜夜澡人人爽| 麻豆精品网站| 亚洲综合在线网站| 日韩成人精品在线| 日本特黄a级片| 美女国产一区二区三区| 色免费在线视频| 久草中文综合在线| 天天综合成人网| 国产美女视频一区| 熟妇高潮一区二区| 91女神在线视频| 人人人妻人人澡人人爽欧美一区| 久久综合av免费| 小早川怜子久久精品中文字幕| 欧美极品xxx| 黄色裸体一级片| 亚洲卡通欧美制服中文| 免费在线一区二区三区| 精品久久久久久久久久久久久| 久久国产黄色片| 在线看国产一区| 91久久国语露脸精品国产高跟| 欧美精品一二三区| 午夜精品在线播放| 日韩av综合中文字幕| 精品欧美不卡一区二区在线观看| 在线播放日韩欧美| 午夜影院免费在线| 国产91对白在线播放| 成人在线免费电影网站| 91久久精品视频| 噜噜噜狠狠夜夜躁精品仙踪林| 久久综合九九| 国产精品久久天天影视| 日韩一级特黄毛片| 先锋影音国产一区| 在线观看免费的av| 99视频精品免费视频| 九九热久久免费视频| 亚洲国产精品精华液网站| 男人天堂2024| 欧美一区二区免费| 午夜视频1000| 久久久国产精品免费| 国产三级电影在线播放| 成人福利网站在线观看| 国产精品白浆| 天天干天天操天天干天天操| 亚洲精品女人| 中文字幕一区久久| 91丨九色丨国产丨porny| 久久人妻无码aⅴ毛片a片app| 亚洲成人动漫一区| 一本色道久久综合无码人妻| 亚洲国产小视频| 日韩美女网站| 欧美在线视频网站| 9l亚洲国产成人精品一区二三| 日本成人三级电影网站| 欧美日韩国产亚洲一区| 日日碰狠狠丁香久燥| 成人一区二区三区| 国产一区二区三区视频播放| 黑人巨大精品欧美一区二区| 国产精品无码久久av| 国产一级揄自揄精品视频| av福利导福航大全在线| 91在线中文字幕| 欧美精品色图| 美女福利视频在线| 高清不卡在线观看| 久草综合在线视频| 欧美精品成人一区二区三区四区| 毛片在线播放网址| 国内免费精品永久在线视频| 亚洲成人高清| 亚洲一区二区免费视频软件合集| 久久狠狠婷婷| 在线观看国产免费视频| 亚洲图片自拍偷拍| 国产成年妇视频| 日日骚av一区| 欧美aaaaaaaa| 亚洲视频导航| 美洲天堂一区二卡三卡四卡视频| 中文字幕狠狠干| 日韩欧美在线网址 | 日韩不卡在线视频| 亚洲人成网站在线播放2019| 日韩成人一级片| 成人无码av片在线观看| 91九色最新地址| 国产福利小视频在线| 日本高清+成人网在线观看| 婷婷综合一区| 国产视频一区二区三区在线播放 | 亚洲欧美激情精品一区二区| 国产又色又爽又黄刺激在线视频| 2019国产精品视频| 欧美日本一区二区高清播放视频| 久久久福利影院| 亚洲欧美福利一区二区| 国产免费高清视频| 久久av资源网站| 日本亚洲视频| 久草视频国产在线| 91丨九色丨蝌蚪富婆spa| 亚洲GV成人无码久久精品 | 国产日韩欧美亚洲一区| 夜夜嗨av一区二区三区网站四季av| 李丽珍裸体午夜理伦片| 欧美日韩国产页| 男女污视频在线观看| 欧美有码在线观看视频| 国产精品一区二区99| 亚洲福利精品视频| 亚洲天堂中文字幕| 韩国av在线免费观看| 欧美中文在线字幕| 菠萝蜜一区二区| 91网址在线观看精品| 亚洲一区二区三区四区中文字幕| 无码国产色欲xxxx视频| 欧美综合在线观看| 四虎成人精品永久免费av九九| 色婷婷一区二区三区在线观看| 亚洲国产欧美日韩另类综合| 日韩三级电影网| 国产美女精彩久久| 国产精品v日韩精品v欧美精品网站| 亚洲视频 中文字幕| 黑人巨大精品欧美一区免费视频 | 亚洲欧美国产日韩综合| 亚洲精品国产a久久久久久 | 91免费国产视频网站| 久久久久久久久久一级| 九九热精品视频国产| 欧美亚洲大陆| 中文字幕久久av| 亚洲成人你懂的| 午夜在线小视频| 国产精品视频一区二区三区经| 先锋a资源在线看亚洲| 性生交大片免费全黄| 亚洲国产精品va在线看黑人动漫| 亚洲va中文在线播放免费| wwwjizzjizzcom| 久久精品一二三| 免费av一级片| 国产美女高潮久久白浆| 夜夜嗨网站十八久久| 国产精品视频一区二区三 | 国产探花在线视频| 日韩电视剧在线观看免费网站| 欧美jizz18| 免费在线观看日韩视频| 亚洲精品视频在线看| 国产精品二线| 精品国产免费人成电影在线观...| 日本欧美在线观看| 99精品视频99| 欧美大肥婆大肥bbbbb|