优秀的编程知识分享平台

网站首页 > 技术文章 正文

JVM内存调优(调整jvm内存与堆内存)

nanyue 2024-07-30 03:38:23 技术文章 7 ℃

分析正在运行的JVM内存

# 内存使用排行

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head

# CPU使用排行

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

# 查询某个PID的具体内存使用信息(内存镜像)

pmap -d 27959

# 查出某个进程的各线程个资源使用情况

top -p 27959

# 获取进程的堆栈信息

jstack 27959

# 输出正在运行的虚拟机进程

jps -l

# 输出虚拟机进程启动时JVM参数

jps -v

# 监视虚拟机各种运行状态信息,如下图

jstat -gcutil 18269

# 查看和调整虚拟机各项参数

jinfo 5660

分析堆内存快照(Heap Dump)。可以通过设置-XX:+HeapDumpOnOutOfMemoryError 让JVM在发生内存溢出时自动的生成堆内存快照。

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof

定位出问题后参考上篇文章几种内存溢出,做相应的处理

发生内存溢出后如何善后

-XX:OnOutOfMemoryError ="sh ~/cleanup.sh"

程序不会发生内存溢出而挂掉,但是运行很慢怎么办

你可能需要关注下“代码缓存”是否溢出,因为这个内存溢出只会给出一个警告,并停用JIT,字节码将不再会被编译成机器码,执行速度大幅度降低。

-XX:InitialCodeCacheSize and -XX:ReservedCodeCacheSize

最近发表
标签列表