性能优化-笔迹

一.JVM参数调优 (目的:事前预防,事前准备)

(1)事前预防的内容:

-Xms4096m 最小堆大小
-Xmx4096m 最大堆大小  不要超过物理内存的3/5,因为发生oom时要快照存储,超过3/5后则有可能快照存储不了。

程序启动时操作系统并不会立即分配4G的大小,而是随着程序的运行慢慢分配到4G的空间。

-XX:+AlwaysPreTouch 一启动就要分配最小堆大小的空间。

把最小和最大堆大小设置为一样,主要是为了避免反复向操作系统申请内存。

只有内存达到最大值才会触发fullGC。

-Xmn2g 指定新生代的大小为2G

-XX:PermSize -XX:MaxPermSize 永久区参数设置

-Xss768k 线程栈大小,默认值为1M,这个地方调小,可以创建更多的线程。

-XX:+UseG1GC  使用G1垃圾收集算法

(2)事前准备的内容:

-verbose:gc
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintHeapAtGC
-XX:+PrintGCDateStamps
-Xloggc:/opt/wildfly/standalone/log/verbose.gc

开始gc日志,文件记录

-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/opt/wildfly/standalone/log/

二.GC

fullGC stop the world

关注的两个方面:

(1)过多/频繁的fullGC 卡顿

(2)oom 异常排查

1.什么情况下会发生GC 当申请内存不够的时候

2.GC日志的查看 -verbose:gc -XX:+PrintGCDetails -Xloggc:gclog.log -XX:PrintGCDateStamps

3.FullGC的危害:出现卡顿

4.如何来看  跟日志,jstat

5.查看堆的使用情况 jmap

6.fullgc 线上问题

创建对象分配不到足够的空间

手动的System.gc(); 可以强制禁用手动gc -XX:+DisableExplicitGC

OOM 异常排查 

1.发生OOM前要做好事前准备,设置jvm参数,得到快照

-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/opt/wildfly/standalone/log/

2.用eclipse工具mat 查看快照文件 MemoryAnalyzer

三.监控工具

visualVM,zabbix

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值