(k8s中)docker netty OOM問題記錄

1、首先查看docker的內存占用情況:

docker top 容器名 -u 查看內存cpu占用率(容器名來自kubectl describe pod xxx或者docker ps)
在這里插入圖片描述
可以看出內存一直增長,作為IO代理這是不正常的。

2、修改啟動參數和配置文件

需要注意的是為了安全考慮,docker默認是不能使用一些調試手段的,需要修改啟動參數和yaml
docker file中增加啟動參數(yaml中應該也可以):

ENTRYPOINT ["java", "-jar", "/usr/local/bin/access-1.0-SNAPSHOT.jar", "-XX:NativeMemoryTracking=detail"]

yaml增加:

apiVersion: apps/v1
kind: Deployment
.......
spec:........template:........spec:      containers:- name: access.........          securityContext:capabilities:add: ["SYS_PTRACE"]

3、查看具體內存占用

各類內存增長情況:

#建立內存基線
jcmd 1 VM.native_memory baseline
#與基線對比
jcmd 1 VM.native_memory summary.diff

其中1是pid,可以通過jps查看

查看當前內存具體申請源:

jcmd 1 VM.native_memory detail scale=MB  

查看結果是Other的內存增長比較明顯:

[0x00007f76b2143b77] Unsafe_AllocateMemory0+0x87
[0x00007f769577c4ba](malloc=732MB type=Other #228)

Unsafe_AllocateMemory0一般是ByteBuf申請的內存,jvm不管理,也就是不會gc,需要自己關注申請和釋放

4、自己申請的ByteBuf

自己申請的ByteBuf要么往下傳遞(通過ctx write或者fire read)由后面的pipe節點釋放,要么自己通過release釋放。
如果是寫入服務器response中的content,通過ctx.writeAndFlush往下傳遞,由netty去管就行了。

5、在pipe的handle中收到的msg

比如服務器上收到的request,如果不是最后一個節點,則必須顯式傳遞:ctx.fireChannelRead(msg);
如果是最后一個節點則自己手動釋放,可以content.release也可以ReferenceCountUtil.release(msg);
也可以繼承SimpleChannelInboundHandler,SimpleChannelInboundHandler中會釋放,不用自己釋放了。
如果是服務器處理一個請求回復一個響應,一般是作為最后一個節點,可以繼承SimpleChannelInboundHandler。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/711111.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711111.shtml
英文地址,請注明出處:http://en.pswp.cn/news/711111.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI推介-多模態視覺語言模型VLMs論文速覽(arXiv方向):2024.01.01-2024.01.10

論文目錄~ 1.RoboFusion: Towards Robust Multi-Modal 3D obiect Detection via SAM2.Aligned with LLM: a new multi-modal training paradigm for encoding fMRI activity in visual cortex3.3DMIT: 3D Multi-modal Instruction Tuning for Scene Understanding4.Incorporati…

電子科技大學課程《計算機網絡系統》(持續更新)

前言 本校的課程課時有所縮減,因此可能出現與你學習的課程有所減少的情況,因此對其他學校的同學更多的作為參考作用。本文章適合學生的期中期末考試,以及想要考研電子科技大學的同學,電子科技大學同學請先看附言。 第一章 計算…

Unity - SerializeReference特性

作用:在編輯器面板上持久序列化一個接口或者抽象類對象 特點: 1.添加SerializeReference后, 即使字段是私有的, 也無需添加SerializeField屬性, 二者同有將私有字段序列化的能力. 2.SerializeReference屬性允許字段為null, 這點與默認序列化行為不同,…

Angular ts中監聽變量

這邊有個需求,需要監控某個input的變量變化,突然忘記怎么監聽變量了,查了下,記錄 這邊使用angluar/core中的OnChanges接口,然后實現 ngOnChanges方法,只要變量發生了變化,這里面都可以監聽到&am…

蘋果手機如何下載微信視頻號的視頻?親測可用的方法!

以下是如何下載微信視頻號的視頻的辦法,首先是視頻號下載提取器,下載視頻號視頻的! 需配合微信PC版或者手機進行操作。這里以蘋果手機為例 首先,你需要在視頻號頻道找到你想要下載的視頻,然后通過點擊選擇你需要播放的…

[Android View] 可繪制形狀 (Shape Xml)

一切以官方文檔為主 官方文檔https://developer.android.com/guide/topics/resources/drawable-resource?hlzh-cn#Shape 什么是可繪制形狀 可以理解為用xml文件來描述一個簡單的Drawable圖形&#xff0c;比如說以下這段xml就可以用來描述一個白色的圓形&#xff1a; <?…

Centos中安裝Docker及Docker的使用

在centos7系統中安裝指定版本的docker,并通過docker使用安裝mysql為例,闡述docker的使用。 2.1、Docker卸載及安裝yum依賴 【卸載Docker,如果安裝的Docker的版本不合適】 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-…

智能汽車軟硬件產品CES展示汽車技術新亮點

智能汽車是汽車產業發展的新趨勢&#xff0c;是未來汽車發展的必然方向。智能汽車是指搭載了先進的傳感器、控制器、執行器等部件&#xff0c;并融合了人工智能、自動駕駛等技術&#xff0c;能夠實現部分或完全自動駕駛、智能網聯等功能的汽車。 近年來&#xff0c;智能汽車技…

抖店怎么開店注冊?新手需要準備什么?這幾個步驟很關鍵!

我是電商珠珠 不少人瞄準了抖店這個短視頻電商勢頭&#xff0c;想要在今年大干一場。關于抖店注冊這方面&#xff0c;部分人還不太清楚&#xff0c;今天我就帶大家一步步注冊&#xff0c;看一遍就會了。 前期準備資料 前期新手的話&#xff0c;需要準備一張個體工營業執照&a…

Java實戰:Web實時消息推送技術

一、引言 隨著互聯網技術的飛速發展和用戶對實時交互體驗的追求&#xff0c;Web實時消息推送已成為眾多在線平臺的核心功能之一。無論是社交網絡的新消息通知、協同辦公工具的實時更新&#xff0c;還是電商平臺的訂單狀態變更&#xff0c;都需要實時、準確地將信息推送到用戶的…

【Java設計模式】二、單例模式

文章目錄 0、單例模式1、餓漢式2、懶漢式3、雙重檢查4、靜態內部類5、枚舉6、單例模式的破壞&#xff1a;序列化和反序列化7、單例模式的破壞&#xff1a;反射8、單例模式的實際應用 設計模式即總結出來的一些最佳實現。GoF(四人組) 書中提到23種設計模式&#xff0c;可分為三大…

B站畫質補完計劃(2):視頻超分讓像素細膩生動

本期作者 1 前言 為了給用戶提供更清晰的畫質體驗&#xff0c;B站自研的超分辨率算法已經在站內廣泛應用&#xff0c;支持了如《賽馬娘》、《流浪地球2》、《權力的游戲》、英雄聯盟S賽賽事直播等知名番劇、電影電視劇以及重要游戲賽事直播的 4K 視頻流生產。 2 超分算法的應用…

論文閱讀:2020GhostNet華為輕量化網絡

創新&#xff1a;&#xff08;1&#xff09;對卷積進行改進&#xff08;2&#xff09;加殘差連接 1、Ghost Module 1、利用1x1卷積獲得輸入特征的必要特征濃縮。利用1x1卷積對我們輸入進來的特征圖進行跨通道的特征提取&#xff0c;進行通道的壓縮&#xff0c;獲得一個特征濃…

“智農”-高標準農田

高標準農田是指通過土地整治、土壤改良、水利設施、農電配套、機械化作業等措施&#xff0c;提升農田質量和生產能力&#xff0c;達到田塊平整、集中連片、設施完善、節水高效、宜機作業、土壤肥沃、生態友好、抗災能力強、與現代農業生產和經營方式相適應的旱澇保收、穩產高產…

C++設計模式之——享元模式詳解和代碼案例

文章目錄 C中實現享元模式通常涉及以下幾個關鍵部分&#xff1a;一個簡單的C代碼片段示例享元模式的進一步說明C享元模式代碼案例——咖啡店訂單系統享元模式在現實世界的應用場景 C中實現享元模式通常涉及以下幾個關鍵部分&#xff1a; 享元模式&#xff08;Flyweight Patter…

LCR 153. 二叉樹中和為目標值的路徑

解題思路&#xff1a; 回溯&#xff1a;先序遍歷&#xff0b;路徑記錄 class Solution {LinkedList<List<Integer>> res new LinkedList<>();LinkedList<Integer> path new LinkedList<>();public List<List<Integer>> pathTarge…

android 如何動態修改swap

前言 當前項目中發現&#xff0c;產品在長時間使用后&#xff0c;會概率死機&#xff0c;通過log分析&#xff0c;可能和swap 大小太小導致的&#xff0c;需要修改增大swap大小后&#xff0c;壓測驗證。如何查看swap大小 cat /proc/swaps C:\Users\Administrator>adb shel…

元學習(meta-learning)的通俗解釋

目錄 1、什么是元學習 2、元學習還可以做什么 3、元學習是如何訓練的 1、什么是元學習 meta-learning 的一個很經典的英文解釋是 learn to learn&#xff0c;即學會學習。元學習是一個很寬泛的概念&#xff0c;可以有很多實現的方式&#xff0c;下面以目標檢測的例子來解釋…

阿里Replace Anything:一鍵替換萬物,讓圖像編輯更簡單

最近&#xff0c;阿里巴巴智能研究院在AIGC領域可謂動作頻頻&#xff0c;新品發布不斷&#xff0c;在之前的文章已經向大家介紹了關于Animate AnyOne, Outfit Anyone&#xff0c;AnyText, AnyDoor等相關技術&#xff0c;感興趣的小伙伴可以點擊下面鏈接閱讀&#xff5e; AI一鍵…

Laravel - API 項目適用的圖片驗證碼

1. 安裝 gregwar/captcha 圖片驗證碼接口的流程是&#xff1a; 生成圖片驗證碼 生成隨機的 key&#xff0c;將驗證碼文本存入緩存。 返回隨機的 key&#xff0c;以及驗證碼圖片 # 不限于 laravel 普通 php 項目也可以使用額 $ composer require gregwar/captcha2. 開發接口 …