第一av在线_日韩成人久久久_亚洲人成电影网站色_精品精品导航_亚洲综合中文_精品国产91久久久久久_可以在线观看的黄色_99热这里有精品

您當前的位置 :環球傳媒網>資訊 > 正文
案例分享-full gc導致k8s pod重啟
2023-05-04 10:34:27 來源:博客園 編輯:

在之前的記一次k8s pod頻繁重啟的優化之旅中分享過對于pod頻繁重啟的一些案例,最近又遇到一例,繼續分享出來希望能給大家帶來些許收獲。


(資料圖片)

問題現象

報警群里突然顯示某pod頻繁重啟,我隨即上去查看日志,主要分這么幾步:

1.查看pod重啟的原因,kubectl descirbe pod

Last State:     Terminated      Reason:       Error      Exit Code:    137

上面的Reason:Error太寬泛了,不能直觀的知道原因,Exit code:137一般表示程序被SIGKILL中斷信號殺死,異常原因可能為:

https://cloud.tencent.com/document/product/457/42945

首先排除OOMKilled情況,剩余的就是livenessProbe(存活檢查)失敗。

2.查看pod事件,kubectl descirbe pod,重點關注輸出的Events部分

Warning  Unhealthy  2m56s (x8 over 7m16s)   kubelet            Liveness probe failed: Get http://10.244.11.136:8080/jc_actuator_1/health: net/http: request canceled (Client.Timeout exceeded while awaiting headers)Normal   Killing    2m56s                   kubelet            Container enterprise-service failed liveness probe, will be restarted

熟悉的健康檢查失敗(超時),是什么導致超時呢,繼續找日志。

3.結合之前的排查經驗,我認為gc的嫌疑最大,所以查看gc日志

貼一部分日志,可以看到Full GC很繁忙,而且每次結束后內存幾乎沒有釋放,應用已經是處于停擺狀態,接下來要做的就是找出Full GC的兇手。

2023-04-22T14:30:58.772+0000: 574.764: [Full GC (Allocation Failure) 2023-04-22T14:30:58.772+0000: 574.764: [Tenured: 2097151K->2097151K(2097152K), 3.6358812 secs] 2569023K->2568977K(2569024K), [Metaspace: 119379K->119379K(1163264K)], 3.6359987 secs] [Times: user=3.64 sys=0.00, real=3.63 secs] 2023-04-22T14:31:02.410+0000: 578.402: [Full GC (Allocation Failure) 2023-04-22T14:31:02.410+0000: 578.402: [Tenured: 2097151K->2097151K(2097152K), 3.5875116 secs] 2569023K->2568980K(2569024K), [Metaspace: 119379K->119379K(1163264K)], 3.5876388 secs] [Times: user=3.59 sys=0.00, real=3.59 secs] 2023-04-22T14:31:05.999+0000: 581.991: [Full GC (Allocation Failure) 2023-04-22T14:31:05.999+0000: 581.991: [Tenured: 2097152K->2097151K(2097152K), 3.5950824 secs] 2569024K->2568987K(2569024K), [Metaspace: 119379K->119379K(1163264K)], 3.5951774 secs] [Times: user=3.59 sys=0.00, real=3.60 secs] 2023-04-22T14:31:09.596+0000: 585.587: [Full GC (Allocation Failure) 2023-04-22T14:31:09.596+0000: 585.587: [Tenured: 2097151K->2097151K(2097152K), 3.5822343 secs] 2569023K->2568849K(2569024K), [Metaspace: 119379K->119379K(1163264K)], 3.5823244 secs] [Times: user=3.58 sys=0.00, real=3.58 secs] 2023-04-22T14:31:13.180+0000: 589.172: [Full GC (Allocation Failure) 2023-04-22T14:31:13.180+0000: 589.172: [Tenured: 2097151K->2097151K(2097152K), 3.6316461 secs] 2569020K->2568910K(2569024K), [Metaspace: 119380K->119380K(1163264K)], 3.6317393 secs] [Times: user=3.63 sys=0.00, real=3.64 secs] 2023-04-22T14:31:16.813+0000: 592.805: [Full GC (Allocation Failure) 2023-04-22T14:31:16.813+0000: 592.805: [Tenured: 2097151K->2097151K(2097152K), 3.6070671 secs] 2569021K->2568907K(2569024K), [Metaspace: 119380K->119380K(1163264K)], 3.6071998 secs] [Times: user=3.60 sys=0.00, real=3.60 secs] 2023-04-22T14:31:20.425+0000: 596.417: [Full GC (Allocation Failure) 2023-04-22T14:31:20.425+0000: 596.417: [Tenured: 2097151K->2097151K(2097152K), 4.7111087 secs] 2569020K->2568899K(2569024K), [Metaspace: 119381K->119381K(1163264K)], 4.7112440 secs] [Times: user=4.71 sys=0.00, real=4.71 secs] 2023-04-22T14:31:25.142+0000: 601.133: [Full GC (Allocation Failure) 2023-04-22T14:31:25.142+0000: 601.133: [Tenured: 2097151K->2097151K(2097152K), 3.8752248 secs] 2569023K->2568899K(2569024K), [Metaspace: 119381K->119381K(1163264K)], 3.8753506 secs] [Times: user=3.88 sys=0.01, real=3.87 secs] 2023-04-22T14:31:29.021+0000: 605.012: [Full GC (Allocation Failure) 2023-04-22T14:31:29.021+0000: 605.012: [Tenured: 2097151K->2097151K(2097152K), 3.5892311 secs] 2569023K->2568910K(2569024K), [Metaspace: 119381K->119381K(1163264K)], 3.5893335 secs] [Times: user=3.59 sys=0.00, real=3.59 secs] 2023-04-22T14:31:32.612+0000: 608.604: [Full GC (Allocation Failure) 2023-04-22T14:31:32.612+0000: 608.604: [Tenured: 2097151K->2097151K(2097152K), 3.5236182 secs] 2569023K->2568915K(2569024K), [Metaspace: 119381K->119381K(1163264K)], 3.5237085 secs] [Times: user=3.52 sys=0.00, real=3.52 secs] 
背景知識

我們的服務部署在k8s中,k8s可以對容器執行定期的診斷,要執行診斷,kubelet 調用由容器實現的 Handler (處理程序)。有三種類型的處理程序:

ExecAction:在容器內執行指定命令。如果命令退出時返回碼為 0 則認為診斷成功。

TCPSocketAction:對容器的 IP 地址上的指定端口執行 TCP 檢查。如果端口打開,則診斷被認為是成功的。

HTTPGetAction:對容器的 IP 地址上指定端口和路徑執行 HTTP Get 請求。如果響應的狀態碼大于等于 200 且小于 400,則診斷被認為是成功的。

每次探測都將獲得以下三種結果之一:

Success(成功):容器通過了診斷。

Failure(失敗):容器未通過診斷。

Unknown(未知):診斷失敗,因此不會采取任何行動。

針對運行中的容器,kubelet 可以選擇是否執行以下三種探針,以及如何針對探測結果作出反應:

livenessProbe:指示容器是否正在運行。如果存活態探測失敗,則 kubelet 會殺死容器, 并且容器將根據其重啟策略決定未來。如果容器不提供存活探針, 則默認狀態為 Success。

readinessProbe:指示容器是否準備好為請求提供服務。如果就緒態探測失敗, 端點控制器將從與 Pod 匹配的所有服務的端點列表中刪除該 Pod 的 IP 地址。初始延遲之前的就緒態的狀態值默認為 Failure。如果容器不提供就緒態探針,則默認狀態為 Success。

startupProbe: 指示容器中的應用是否已經啟動。如果提供了啟動探針,則所有其他探針都會被 禁用,直到此探針成功為止。如果啟動探測失敗,kubelet 將殺死容器,而容器依其重啟策略進行重啟。如果容器沒有提供啟動探測,則默認狀態為 Success。

以上探針介紹內容來源于https://kubernetes.io/zh/docs/concepts/workloads/pods/pod-lifecycle/#container-probes

尋找原因

前面提到是由于Full GC STW導致jvm無法提供服務,那我們就看看是什么導致Full GC,具體的手段就是獲取heap dump文件,然后分析,什么時機去獲取呢?

這里采用的辦法是守株待兔,開兩個窗口,一個盯著gc日志,當看到有大量Full GC產生時在另一個窗口生成heap dump文件。

接下來通過Eclipse MAT工具分析dump文件

原因一目了然,是導出excel導致,涉及的數據接近10w條,且列比較多。

分析代碼

大概看了一下導出的代碼,問題集中在以下四點:

1.查詢數據沒有使用分頁;

2.使用的Apache poi工具本身性能不好,內存占用過高;

3.導出沒有限流,對于極度消耗資源的操作必須要控制并發,保護系統;

4.同步導出,用戶等待時間過長時會選擇重試,對系統來講是雪上加霜。

改進措施

1.查詢分頁,保證往excel寫數據時內存中只會有一頁數據;

2.使用性能更好的工具,如easyexcel;

3.異步導出,控制同時導出的并發數;

經過這三步改造以后,導出導致的Full GC問題得以改善,上線一周再沒有發現由于大數據量的導出導致的pod重啟問題。

推薦閱讀

1.容器服務pod異常排查

https://cloud.tencent.com/document/product/457/42945

2.通過Exit Code定位 Pod 異常退出原因

https://cloud.tencent.com/document/product/457/43125

3.pod異常問題排查

https://help.aliyun.com/document_detail/412618.html#6

4. easyexcel

http://easyexcel.opensource.alibaba.com/

關鍵詞:

相關閱讀
分享到:
版權和免責申明

凡注有"環球傳媒網"或電頭為"環球傳媒網"的稿件,均為環球傳媒網獨家版權所有,未經許可不得轉載或鏡像;授權轉載必須注明來源為"環球傳媒網",并保留"環球傳媒網"的電頭。

Copyright ? 1999-2017 cqtimes.cn All Rights Reserved 環球傳媒網-重新發現生活版權所有 聯系郵箱:8553 591@qq.com
日韩一区二区电影在线| 在线观看欧美日韩电影| 成年人网站91| 在线观看国产精品入口| 日本一道高清一区二区三区| 日本福利在线| 日韩欧美国产系列| 欧美精品日韩一区| а√天堂在线官网| 午夜dj在线观看高清视频完整版| 超免费在线视频| 最新欧美色图| 一区二区三区性视频| 91传媒视频在线播放| 日韩视频一区二区三区| 国产精品久久久久久福利| 亚洲视频成人| 国产一区二区三区在线观看免费 | 美女扒开腿让男人桶爽久久动漫| 国产视频丨精品|在线观看| 亚洲精品成人天堂一二三| 在线看国产视频| 久久99免费视频| 国产.欧美.日韩| 亚洲欧美日韩天堂| 国产成人亚洲一区二区三区 | 国产一区二区三区影视| 综合激情网...| 青草国产精品| 人人精品人人爱| 成人av手机在线观看| 三级欧美韩日大片在线看| 亚洲综合激情| 国产a区久久久| a√免费观看在线网址www| 黄色激情在线播放| 极品国产人妖chinesets亚洲人妖| 精品福利av| 日本一区免费视频| 欧美国产另类| 26uuu国产电影一区二区| 动漫精品一区二区| 久草在现在线| 欧美96一区二区免费视频| 诱受h嗯啊巨肉高潮| 欧美1区2区3区| 福利一区二区在线| 久久久av毛片精品| 日本aⅴ精品一区二区三区| 欧美va天堂| 日韩欧美一起| 99精品中文字幕在线不卡 | 成人激情久久| 91麻豆精品国产综合久久久久久| 亚洲欧美日韩国产综合精品二区| 欧美一级鲁丝片| 91免费在线| 成久久久网站| 亚洲18女电影在线观看| 国产中文在线观看| 久久久免费毛片| 亚洲少妇在线| 日韩一区二区三免费高清| 在线观看入口黄最新永久免费国产 | 先锋影音国产一区| 久久亚洲精华国产精华液| 又黄又爽的视频在线观看| 国产在线麻豆精品观看| 日韩欧美中文字幕在线播放| 中国在线观看免费国语版电影| 四虎5151久久欧美毛片| 日本一区二区免费在线观看视频| 日韩精品一二区| 在线观看视频91| 亚洲男男av| 一级中文字幕一区二区| 国产精品一在线观看| 福利h视频在线| 亚洲精品日韩专区silk| 国产精品一线| 亚洲国产精品999| 色综合久久中文| 亚洲精品第1页| 国产三级伦理在线| 国产麻豆综合| 色综合久久久久久久久久久| 91大神xh98hx在线播放| 亚洲夜间福利| 亚洲欧美一区二区三区久久| av日韩一区| 国语精品一区| 亚洲久本草在线中文字幕| 国产男小鲜肉同志免费| 成人久久网站| 日本亚洲免费观看| 精品国产乱码久久久久久图片 | 精品国产免费人成在线观看| 99久久久久| av资源中文在线| 欧美一区二区精品在线| 成人午夜电影小说| 国产伊人久久| 日韩h在线观看| 日韩中文在线电影| 欧美性猛片aaaaaaa做受| 蜜桃一区二区| 综合在线观看色| 欧美精品乱码| 日韩一级欧美一级| 在线看片不卡| 91麻豆精品国产自产在线| 日韩影院在线| ...av二区三区久久精品| 亚洲女同志freevdieo| 亚洲国产成人一区| 日韩精品欧美精品| 最猛黑人系列在线播放| 校园激情久久| 国产三区在线观看| 亚洲电影一级黄| 亚洲色图国产精品| 国产99精品视频| 豆花视频一区| 嫩草影院网站在线| 国产午夜久久久久| 欧美日本一区二区高清播放视频| 无遮挡爽大片在线观看视频| 黄色的网站在线观看| 欧美日韩视频在线第一区| 26uuu精品一区二区三区四区在线| 成人av在线播放| 91大神网址| 亚洲日本成人在线观看| 日韩电影精品| 亚洲精品按摩视频| 久久66热re国产| 国产三区四区在线观看| 91高清在线观看| 狠狠爱成人网| 中午字幕在线观看| 国产在线日韩欧美| 日韩伦理精品| 黄网站在线观| 成人高清在线观看免费| 亚洲午夜极品| 国内精品在线视频| 欧美福利视频导航| 国产精品福利av| 国产精品字幕| 日韩欧美成人精品| 美女一区二区视频| 久久网站免费观看| 亚洲国产成人二区| 在线观看av黄网站永久| 五月天婷婷综合| 日韩精品电影在线观看| 日韩免费视频| 麻豆传媒视频在线观看| 精品久久久久久中文字幕| 在线观看一区视频| 精品国产免费人成网站| 亚洲第一福利网站| 国产欧美视频一区二区三区| 国产日韩三级| 欧美成人国产一区二区| 国产91色综合久久免费分享| 成人黄色免费短视频| 久久电影网站| 婷婷色在线资源| 调教一区二区| 婷婷综合在线观看| 99久久99久久精品免费看蜜桃| 在线播放日韩| 欧美日韩亚洲三区| 日韩成人动漫| 亚洲国产一区二区在线播放| 国产高清不卡一区| 亚洲麻豆av| 日韩dvd碟片| 中文字幕午夜精品一区二区三区| 久久精品国产秦先生| 久久婷婷国产综合精品青草| 午夜不卡av免费| 在线不卡免费欧美| 最新二区三区av| 蝌蚪视频在线播放| 欧美一卡二卡| 高清一区二区三区av| 久久青青色综合| 国产写真视频在线观看| 成人激情电影在线看| 精品国产一区二区三区忘忧草| 91福利视频久久久久| 亚洲男人天堂一区| 国产精品传媒视频| 狠狠干狠狠久久| 日本一区二区成人在线| 丝袜美腿亚洲综合| 成人毛片在线| 激情欧美日韩|