精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

丰满少妇在线观看资源站| 老汉色影院首页| 成人免费毛片男人用品| 成人激情视频| 3d动漫精品啪啪一区二区竹菊| 中文字幕色一区二区| 性一交一乱一透一a级| 一区二区三区福利| 伊人久久久久久久久久| 51自拍视频在线观看| 精精国产xxxx视频在线播放| 中文久久乱码一区二区| 92看片淫黄大片看国产片| 日韩欧美三级视频| 91综合久久一区二区| 亚洲国产日韩精品在线| 一级做a免费视频| 英国三级经典在线观看| 亚洲欧美另类小说| 欧美污视频久久久| 亚洲av综合色区无码一区爱av| 久久一区国产| 欧美极品xxxx| 任我爽在线视频| 免费成人av| 精品乱码亚洲一区二区不卡| 人人干人人视频| 成人性生交大片免费看网站| 国产精品护士白丝一区av| 国产精品v欧美精品∨日韩| a片在线免费观看| 在线视频精品| 欧美激情va永久在线播放| 免费黄在线观看| 亚洲v天堂v手机在线| 日韩网站在线看片你懂的| 亚洲无吗一区二区三区| 九色porny自拍视频在线观看| 综合色天天鬼久久鬼色| 手机看片福利永久国产日韩| 午夜在线视频免费| 国产成人精品免费一区二区| 国产欧美一区二区白浆黑人| 亚洲欧美偷拍视频| 亚洲精品社区| 久久久久久美女| 亚洲熟女www一区二区三区| 日韩成人精品一区| 国产一区二区三区中文| 成年人网站免费在线观看| 久久久久久久久久久久久久久久久久久久 | 久久久久美女| 国产亚洲精品久久久久久| 少妇精品一区二区| 久久99国产精品久久99大师| 精品欧美乱码久久久久久1区2区| 69久久精品无码一区二区| 99国内精品久久久久| 欧美日韩大陆一区二区| 色播五月综合网| 色成人综合网| 91超碰这里只有精品国产| gogogo高清免费观看在线视频| 123成人网| 欧洲激情一区二区| jizz欧美性11| 青娱乐极品盛宴一区二区| 欧美日韩国产精品自在自线| 欧美激情国内自拍| 久久爱www.| 欧美大片国产精品| 亚洲色偷偷色噜噜狠狠99网| 欧美自拍一区| 国产一区二区日韩精品欧美精品| av黄色在线免费观看| 久久精品高清| 理论片在线不卡免费观看| 男女羞羞免费视频| 亚洲欧洲一区| 日本精品视频在线观看| 中文字幕一区2区3区| 韩国三级电影一区二区| 亚洲一区中文字幕在线观看| 亚洲乱码在线观看| 久久日一线二线三线suv| 日韩免费三级| 久操视频在线免费播放| 午夜精品久久久久久久久久| 免费看a级黄色片| 亚洲精品三区| 亚洲国产精久久久久久| 无码h肉动漫在线观看| 大片网站久久| 久久久久久久久久久免费| 亚洲欧美综合自拍| 国内精品视频一区二区三区八戒| 国产丝袜不卡| jizz在线观看中文| 亚洲女同女同女同女同女同69| 男人添女人下部高潮视频在观看| av久久网站| 欧美精品一区二区三区在线| 欧美性猛交xxxx乱| 欧美午夜精品| 国产精品久久久999| www.国产欧美| 国产精品婷婷午夜在线观看| www.av91| 久久99国产精品二区高清软件| 欧美mv日韩mv亚洲| 日韩影视一区二区三区| 在线观看一区视频| 国产精品亚洲аv天堂网| 亚洲免费视频网| 中文字幕日本不卡| 国产乱子夫妻xx黑人xyx真爽| 欧美a在线观看| 在线日韩精品视频| 五月天综合激情| 国产激情精品久久久第一区二区| 日韩精品另类天天更新| 啊啊啊久久久| 日韩精品一区二区三区视频| 蜜桃av免费观看| 每日更新成人在线视频| 国产精品sss| 成人免费在线| 欧美另类videos死尸| 在线观看日韩精品视频| 狠狠综合久久| 91影视免费在线观看| 成全电影播放在线观看国语| 欧美日韩国产精品一区二区三区四区 | 亚洲精品xxxx| 国产一级免费av| 国产精品综合在线视频| 亚洲一区三区| 免费污视频在线一区| 日韩经典中文字幕| 日本亚洲欧美在线| 成人在线视频一区| 热这里只有精品| 欧洲精品久久久久毛片完整版| 亚洲欧美色婷婷| 日韩精品在线观看免费| www.亚洲精品| 免费人成自慰网站| 日韩欧美久久| 欧美激情第三页| 超碰在线观看av| 夜夜夜精品看看| 国模大尺度视频| 亚洲乱码免费伦视频| 国产在线观看一区二区三区 | 中文一区二区在线观看| 精品久久久久久久无码| 国产日产一区| 国产成人综合亚洲| a天堂在线资源| 欧美日韩综合色| 国产91在线播放九色| 六月婷婷色综合| 国产美女视频免费| 久久在线观看| 欧美精品久久久久久久久| 日本毛片在线观看| 精品国产乱码久久久久久虫虫漫画| 800av在线播放| 久久九九电影| 亚洲精品电影在线一区| а天堂中文最新一区二区三区| 久久伊人免费视频| 成人精品在线播放| 欧美性极品xxxx娇小| 女人黄色一级片| 国产自产2019最新不卡| 青春草国产视频| 亚洲v天堂v手机在线| 国产精品直播网红| 调教一区二区| 日韩激情av在线免费观看| 久久精品视频2| 1000精品久久久久久久久| 日本成人在线免费| 亚洲欧美视频一区二区三区| 视频一区二区精品| 无人区乱码一区二区三区| 97视频在线免费观看| 91女主播在线观看| 日韩欧美一区二区久久婷婷| 久久久久久久久久影院| 中文字幕制服丝袜一区二区三区| 无码人妻一区二区三区免费n鬼沢| 亚洲三级免费| 亚洲精品中文字幕在线| y111111国产精品久久久| 国产成人精品999| 制服丝袜中文字幕在线| 亚洲乱码av中文一区二区| 国产精品久久久久久久久毛片 | 日本一区二区在线不卡| 亚洲综合中文网| 玖玖在线精品| www.日本在线视频| 欧美色图激情小说| 国产伦理一区二区三区| 国产精品99精品一区二区三区∴| 欧美国产日韩视频| p色视频免费在线观看| 亚洲黄色www网站| 国产美女永久免费| 色欧美片视频在线观看在线视频| 日本黄色小说视频| 国产农村妇女毛片精品久久麻豆| 亚洲熟女一区二区三区| 麻豆91小视频| 免费国产成人av| 国产精品女主播一区二区三区 | 国产欧美丝祙| 日韩a级黄色片| 91中文字幕精品永久在线| 欧美精品一区二区三区在线看午夜 | 欧美18—19性高清hd4k| 成人免费看视频| 亚洲欧美天堂在线| 日韩高清不卡一区二区三区| 成年人网站国产| 欧美国产另类| 99精品视频网站| 日韩电影免费在线观看| 欧美日韩一区二区三区在线观看免| 日韩精品久久久久久久软件91| 国产欧美精品日韩| 日韩不卡视频在线观看| 欧美在线视频a| 黄视频免费在线看| 久久久久久久久综合| 免费在线国产视频| 久久久国产精品x99av| 欧美性天天影视| 自拍亚洲一区欧美另类| 搞黄视频免费在线观看| 亚洲精品一区久久久久久| 四虎永久在线观看| 亚洲成人久久久| 免费的黄色av| 精品处破学生在线二十三| 性猛交富婆╳xxx乱大交天津| 7777精品伊人久久久大香线蕉| 中文字幕欧美人妻精品一区蜜臀| 在线亚洲免费视频| 波多野结衣高清在线| 91精品福利视频| 中文字幕日本人妻久久久免费 | 精品国产午夜| 日韩欧美亚洲日产国| 精品大片一区二区| 日本一区二区三不卡| 精品国产一区二区三区噜噜噜| 欧美色欧美亚洲另类七区| 精品色999| 亚洲最大免费| 欧美在线精品一区| heyzo亚洲| 老鸭窝亚洲一区二区三区| 老司机午夜av| 久草这里只有精品视频| 亚洲av无一区二区三区久久| 国产91高潮流白浆在线麻豆| 亚洲天堂美女视频| 久久女同精品一区二区| 女人十八毛片嫩草av| 亚洲欧美精品午睡沙发| 久久久久久久久久久久久久免费看 | 国产一区2区在线观看| 亚洲永久在线观看| 黑人久久a级毛片免费观看| 欧美h视频在线| 日韩在线视屏| 4444亚洲人成无码网在线观看| 最新亚洲视频| 国产精品v日韩精品v在线观看| 国产伦精一区二区三区| 91丝袜在线观看| 欧美激情一二三区| 少妇影院在线观看| 日韩欧美999| 一区二区视频网| 精品少妇一区二区三区在线播放| 天堂91在线| 按摩亚洲人久久| 超碰在线99| 国产伦精品一区二区三区精品视频| 涩爱av色老久久精品偷偷鲁| 蜜桃av噜噜一区二区三区| 天天射综合网视频| 国产午夜大地久久| 精品一区二区在线看| 欧美精品欧美极品欧美激情| 国产精品私人影院| 日韩少妇高潮抽搐| 欧美日韩国产成人在线91| 色呦呦中文字幕| 久久久成人av| 美女写真久久影院| 国产精品一 二 三| 日韩极品一区| 亚洲中文字幕无码专区| 激情伊人五月天久久综合| 成人免费无码大片a毛片| 亚洲欧洲一区二区在线播放| 国产成人在线视频观看| 欧美白人最猛性xxxxx69交| 福利视频在线看| 97超级碰碰碰| 97精品久久| 国产麻豆电影在线观看| 日韩成人一区二区| 无码精品一区二区三区在线播放| 亚洲美女在线一区| 色婷婷久久综合中文久久蜜桃av| 亚洲国产成人久久综合| 伊人影院在线视频| 国产在线播放91| 欧美色婷婷久久99精品红桃| 日日碰狠狠躁久久躁婷婷| 成+人+亚洲+综合天堂| 1024手机在线视频| 欧美高清一级片在线| 亚洲搞黄视频| 国产精品电影在线观看| 美日韩中文字幕| 国产最新免费视频| 成人激情校园春色| 免费在线黄色片| 欧美一级高清大全免费观看| 精品孕妇一区二区三区| 成人欧美一区二区三区黑人| 成人羞羞网站入口免费| 久久综合伊人77777麻豆最新章节| 91视视频在线直接观看在线看网页在线看| 久久精品99国产精| 日韩久久精品一区| 日本在线视频www鲁啊鲁| 91九色视频在线观看| 欧美一区激情| 麻豆精品国产传媒| 一区二区三区四区国产精品| www.精品视频| 欧美大片大片在线播放| 8x国产一区二区三区精品推荐| 欧美 亚洲 视频| 高清在线观看日韩| 18精品爽视频在线观看| 亚洲精品一线二线三线无人区| 成年网站在线视频网站| 精品一区2区三区| 午夜在线一区| 国产传媒国产传媒| 欧美日韩国产综合一区二区| 免费黄网站在线播放| 亚洲自拍偷拍色片视频| 国内精品99| 91精品人妻一区二区| 在线观看91视频| 拍真实国产伦偷精品| y111111国产精品久久婷婷| 伊人久久久大香线蕉综合直播| av网页在线观看| 在线免费不卡视频| 老司机午夜在线| 国产精品初高中精品久久| 9色精品在线| www久久久久久久| 欧美一区二区在线免费播放| 国内在线视频| 日韩欧美一区二区视频在线播放 | a免费在线观看| 黑人另类av| 男女男精品网站| 免费网站看av| 亚洲人成电影网站色xx| 最新亚洲国产| 少妇人妻无码专区视频| 国产欧美视频一区二区三区| 国产情侣激情自拍| 97精品国产91久久久久久| 欧美精品一区二区三区精品| 99999精品| 色悠悠久久综合| 羞羞视频在线观看不卡| 狼狼综合久久久久综合网| 久久精品理论片| 五月婷婷中文字幕| www.欧美三级电影.com| 欧美交a欧美精品喷水| mm131国产精品| 欧美日韩国产中文字幕| 黄色一级大片在线免费看产| 欧美在线激情|