电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

docker 查看jvm內(nèi)存占用方式

瀏覽:110日期:2024-11-03 11:32:08
一、進入docker容器的宿主機,查看運行指定鏡像的容器id(結(jié)果的第一列):

docker ps | grep myImageName(或docker ps | grep java)二、進入容器內(nèi)部:

docker exec -it containerId sh三、直接輸入top命令:

top

docker 查看jvm內(nèi)存占用方式

可看到基本的容器占用的信息:pid、vsz、cpu、command等。(ctrl+c 或 q,退出top)

四、查看更具體的jvm內(nèi)存占用:

top -m

docker 查看jvm內(nèi)存占用方式

其中,vsz:Virtual Memory Size,虛擬內(nèi)存大小,表明了該進程可以訪問的所有內(nèi)存,包括被交換的內(nèi)存和共享庫內(nèi)存。

rss: Resident Set Size,常駐內(nèi)存集合大小,表示進程在RAM中占用了多少內(nèi)存,并不包含在SWAP中占用的虛擬內(nèi)存。即使是在內(nèi)存中的使用了共享庫的內(nèi)存大小也一并計算在內(nèi),包含了完整的在stack和heap中的內(nèi)存。

SHR:shared memory,共享內(nèi)存。

補充:

ps -ef | grep java 或 docker top 容器id ,可查看pid的一些信息。

ps aux | grep java。

top -p pid。

RSS 是常駐內(nèi)存集(Resident Set Size),表示該進程分配的內(nèi)存大小。

RSS 不包括進入交換分區(qū)的內(nèi)存。

RSS 包括共享庫占用的內(nèi)存(只要共享庫在內(nèi)存中)

RSS 包括所有分配的棧內(nèi)存和堆內(nèi)存。

VSZ 表示進程分配的虛擬內(nèi)存。

VSZ 包括進程可以訪問的所有內(nèi)存,包括進入交換分區(qū)的內(nèi)容,以及共享庫占用的內(nèi)存。

VSZRW:未百度到具體含義,猜測:初始申請的虛擬內(nèi)存大小。

docker stats 容器名 或 docker stats 容器id,結(jié)果如下:

CONTAINER CPU %MEM USAGE / LIMIT MEM %NET I/O BLOCK I/O PIDS

補充:docker容器化下的JVM參數(shù)調(diào)優(yōu)

1、JVM堆內(nèi)存設(shè)置

跑在docker容器的Java服務(wù)發(fā)生過幾次內(nèi)存超標(biāo)異常,實際上這和Java程序的docker容器化有很大的關(guān)系。Java和docker并不是天然的朋友,docker可以設(shè)置內(nèi)存和CPU限制,底層通過Linux cgroup技術(shù)實現(xiàn),但是Java JVM并不能自動檢測到。

我們可以使用Java的Xmx標(biāo)識手動指定堆內(nèi)存的大小或者使用較高版本的JDK提供的JVM標(biāo)識,解決這個問題。

問題:

舊版本Java8(update 131之前的版本),JVM的可用內(nèi)存和CPU數(shù)量并不是docker允許你使用的可用內(nèi)存和CPU數(shù)量

比如docker容器中限制只能使用1G,但是舊版本Java并不能識別到這個限制,當(dāng)業(yè)務(wù)增長時,JVM就會申請更多內(nèi)存,可能遠超這個限制。但是如果使用太多內(nèi)存,docker就會采取行動并殺死容器內(nèi)的Java進程,顯然這不是我們想要的!

目前我們生產(chǎn)環(huán)境使用Java8版本,這個問題可通過-Xmx限制堆內(nèi)存大小來解決,不過這里實際限制了兩次,一次是docker容器的內(nèi)存限制,一次是jvm堆內(nèi)存的限制。

解決方法:

這個前提需要Java程序的dockerfile支持:

# 初始鏡像FROM adoptopenjdk/openjdk8# jar包名字需要更改為項目名字-版本號,后面app.jar 不變ADD example-sun-1.0.jar app.jar# 配置JVM啟動參數(shù)ENV JVM_ARGS=${JVM_ARGS}EXPOSE 8080# 優(yōu)化jvm參數(shù)配置啟動ENTRYPOINT java ${JVM_ARGS} -Djava.security.egd=file:/dev/./urandom -jar app.jar

具體在k8s deployment.yaml 部署文件中環(huán)境變量 env 中加入以下參數(shù),當(dāng)JVM 啟動時就會加載進去

- name: JVM_ARGS value: -Xmx1024m -Xms512m

Xmx1024m #設(shè)置jvm堆內(nèi)存的最大值

-Xms512m #設(shè)置jvm堆內(nèi)存的最小值

這里設(shè)置最小堆內(nèi)存為512m,最大內(nèi)存為1024m, 堆內(nèi)存調(diào)整不要一味簡單增大,要仔細分析內(nèi)存占用過大的原因,是否有代碼上的問題。

較高版本Java9之后(8u131+)JVM提供更好的解決方式

使用JVM 標(biāo)志: -XX:+UnlockExperimentalVMOptions-XX:+UseCGroupMemoryLimitForHeap

強制JVM檢查Linux的cgoup配置,實際上docker正是通過Linux的cgroup技術(shù)來限制容器的內(nèi)存等資源的。現(xiàn)在如果應(yīng)用達到了docker設(shè)置的限制(比如1G),JVM是可以看到這個限制的,JVM就會嘗試GC操作。

如果gc之后仍然超過內(nèi)存限制,那JVM就會做它該做的事情,比如拋出OutOfMemoryException.也就是說,JVM能夠識別到docker的這些設(shè)置。

2、GC日志打印以及OOM自動dump

程序運行過程中,也可以打印GC日志,方便排查問題, 同時當(dāng)Java發(fā)生OutOfMemory 異常時可將heap 內(nèi)存 dump 下來方便我們排查問題使用,設(shè)置以下參數(shù):

- name: JVM_ARGS value: -Xmx1536m -Xms512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/my-heap-dump.hprof -Xloggc:/logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps

參數(shù)含義:

# 發(fā)生內(nèi)存溢出自動dump內(nèi)存文件-XX:+HeapDumpOnOutOfMemoryError############ 指定dump文件地址為服務(wù)打印日志文件夾/logs(已掛載)-XX:HeapDumpPath=/logs/my-heap-dump.hprof############ 打印服務(wù)gc日志-Xloggc:/logs/gc.log# 輸出詳細GC日志-XX:+PrintGCDetails# 格式化輸出時間戳 2020-09-17T19:45:05.680+0800-XX:+PrintGCDateStamps

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。如有錯誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: Docker
相關(guān)文章:
主站蜘蛛池模板: 澳洁干洗店加盟-洗衣店干洗连锁「澳洁干洗免费一对一贴心服务」 干洗加盟网-洗衣店品牌排行-干洗设备价格-干洗连锁加盟指南 | 磁力抛光机_磁力研磨机_磁力去毛刺机-冠古设备厂家|维修|租赁【官网】 | 工业rfid读写器_RFID工业读写器_工业rfid设备厂商-ANDEAWELL | 国资灵活用工平台_全国灵活用工平台前十名-灵活用工结算小帮手 | 电销卡_北京电销卡_包月电话卡-豪付网络 | 上海租奔驰_上海租商务车_上海租车网-矢昂汽车服务公司 | 南京泽朗生物科技有限公司-液体饮料代加工_果汁饮料代加工_固体饮料代加工 | 日本东丽膜_反渗透膜_RO膜价格_超滤膜_纳滤膜-北京东丽阳光官网 日本细胞免疫疗法_肿瘤免疫治疗_NK细胞疗法 - 免疫密码 | 网站制作优化_网站SEO推广解决方案-无锡首宸信息科技公司 | 长城人品牌官网| 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 | 我爱古诗词_古诗词名句赏析学习平台 | 飞飞影视_热门电影在线观看_影视大全 | 橡胶电子拉力机-塑料-微电脑电子拉力试验机厂家-江苏天源 | 档案密集架,移动密集架,手摇式密集架,吉林档案密集架-厂家直销★价格公道★质量保证 | 上海道勤塑化有限公司 | 上海平衡机-单面卧式动平衡机-万向节动平衡机-圈带动平衡机厂家-上海申岢动平衡机制造有限公司 | 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | 引领中高档酒店加盟_含舍·美素酒店品牌官网 | 企业微信营销_企业微信服务商_私域流量运营_艾客SCRM官网 | 北京包装设计_标志设计公司_包装设计公司-北京思逸品牌设计 | 空气净化器租赁,空气净化器出租,全国直租_奥司汀净化器租赁 | 【灵硕展览集团】展台展会设计_展览会展台搭建_展览展示设计一站式服务公司 | 共享雨伞_共享童车_共享轮椅_共享陪护床-共享产品的领先者_有伞科技 | 继电器模组-IO端子台-plc连接线-省配线模组厂家-世麦德 | 世界箱包品牌十大排名,女包小众轻奢品牌推荐200元左右,男包十大奢侈品牌排行榜双肩,学生拉杆箱什么品牌好质量好 - Gouwu3.com | 潜水搅拌机-双曲面搅拌机-潜水推进器|奥伯尔环保 | 七维官网-水性工业漆_轨道交通涂料_钢结构漆 | 防勒索软件_数据防泄密_Trellix(原McAfee)核心代理商_Trellix(原Fireeye)售后-广州文智信息科技有限公司 | 膜片万向弹性联轴器-冲压铸造模具「沧州昌运模具」 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 | 亚克力制品定制,上海嘉定有机玻璃加工制作生产厂家—官网 | 亳州网络公司 - 亳州网站制作 - 亳州网站建设 - 亳州易天科技 | 二手电脑回收_二手打印机回收_二手复印机回_硒鼓墨盒回收-广州益美二手电脑回收公司 | 衬四氟_衬氟储罐_四氟储罐-无锡市氟瑞特防腐科技有限公司 | 瑞典Blueair空气净化器租赁服务中心-专注新装修办公室除醛去异味服务! | 升降机-高空作业车租赁-蜘蛛车-曲臂式伸缩臂剪叉式液压升降平台-脚手架-【普雷斯特公司厂家】 | 双段式高压鼓风机-雕刻机用真空泵-绍兴天晨机械有限公司 | 多功能真空滤油机_润滑油全自动滤油机_高效真空滤油机价格-重庆润华通驰 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 天坛家具官网|