菜鸡学技术

今天早上猛地发现自己的机器在告警。说是内存超过了95%。因为这个应用很稳定,看了看告警,确实早上的时候有超时,按照管理超时会导致线程增加,内存会上升,并且超时恢复后这个内存下不去,只能靠重启。

这是以前。所以今天我也想着晚上这样操作下。但是超哥说,你研究一下看看jvm怎么调整吧,就当学习了。

5555上一次被安排这个使命时间已经久远到我记不得了,甚至可能没有。这块工作一直是龙哥在做,甚至没有给过我任何机会去实操。

超哥:如果你还想学技术的话我来想办法,不想的话就当我没说。

我做的:

1. 看了这个机器目前的配置。

2. 看了这个机器告警时候的cpu和内存。

3. 搜了一下jvm的意思。问了一下ai应该怎么调。

结论:似懂非懂无从下手

12点了,超哥过来要重启机器了,问我搞得怎么样。

我:…… 没看完。

超哥:那么复杂吗?

…… 

超哥做的:

1. 看了这个机器目前的配置。

2. 看了这个机器告警时候的cpu和内存。但是他增加了一步,去看了这个机器jvm的监控(这个在六翼里)

3. 根据配置和监控分析了一下

4. 去控制台查了一下这个机器内存使用情况 使用命令jcmd ,但是当时命令不记得了,百度了一下,用了下面这篇

百度安全验证icon-default.png?t=N7T8https://baijiahao.baidu.com/s?id=1770092926400850127&wfr=spider&for=pc5. 最终结论,机器3.6g,老年代80%就触发一次fullgc,所以机器频繁fullgc没问题,堆内存没得调了,只能改非堆内存,已知非堆内存升高是因为超时导致的线程积压,那么要么以后调整一下线程的配置,要么现在直接改大机器内存。改完后保存并立即生效。机器挨个重启,没有影响线上。

6. 布置作业,去了解一下jvm的这几个配置,去了解一下jcmd查出来的东西怎么看心理有个数,学习一下看线程大小怎么配置。

今日命令:

1. 查看当前机器的pid  jps

2. 查看这个pid的内存使用情况  jcmd 1  VM.native_memory summary  

据说是因为-XX:NativeMemoryTracking=summary  这里只配置了summary,说以只能看summary,如果配置了detail的话就可以看detail了。但是这里个summary和detail也不知道啥意思。

Native Memory Tracking:

Total: reserved=4272899KB, committed=3102759KB
-                 Java Heap (reserved=2048000KB, committed=2048000KB)
                            (mmap: reserved=2048000KB, committed=2048000KB) 
 
-                     Class (reserved=1189598KB, committed=158558KB)
                            (classes #25400)
                            (malloc=3806KB #75488) 
                            (mmap: reserved=1185792KB, committed=154752KB) 
 
-                    Thread (reserved=333482KB, committed=333482KB)
                            (thread #324)
                            (stack: reserved=332044KB, committed=332044KB)
                            (malloc=1058KB #1641) 
                            (arena=380KB #647)
 
-                      Code (reserved=272376KB, committed=133276KB)
                            (malloc=22776KB #28544) 
                            (mmap: reserved=249600KB, committed=110500KB) 
 
-                        GC (reserved=52168KB, committed=52168KB)
                            (malloc=46160KB #792) 
                            (mmap: reserved=6008KB, committed=6008KB) 
 
-                  Compiler (reserved=770KB, committed=770KB)
                            (malloc=639KB #1134) 
                            (arena=131KB #3)
 
-                  Internal (reserved=281896KB, committed=281896KB)
                            (malloc=281864KB #372596) 
                            (mmap: reserved=32KB, committed=32KB) 
 
-                    Symbol (reserved=33163KB, committed=33163KB)
                            (malloc=28840KB #296392) 
                            (arena=4323KB #1)
 
-    Native Memory Tracking (reserved=12196KB, committed=12196KB)
                            (malloc=42KB #472) 
                            (tracking overhead=12154KB)
 
-               Arena Chunk (reserved=226KB, committed=226KB)
                            (malloc=226KB) 
 
-                   Unknown (reserved=49024KB, committed=49024KB)
                            (mmap: reserved=49024KB, committed=49024KB)

3. 机器配置

 -Xms2000m 
-Xmx2000m 
-Xmn1000m 
-XX:MetaspaceSize=256M 
-XX:NativeMemoryTracking=summary 
-XX:CMSInitiatingOccupancyFraction=80 
-XX:+UseConcMarkSweepGC

cpu 1.0-1.5 内存 3600

mark 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值