你的java服务挂了吗

问题背景

最近测试环境服务总是崩溃,运维小哥全部重启后还是崩溃,查看了服务运行情况占用内存确实挺高的,看来是时候优化一波jvm参数了。


优化前

top $(ps -e | grep java | awk '{print $1}' | sed 's/^/-p/')  

   

优化后

nohup java -Xms800m -Xmx800m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m -jar
 ${LUJING}/${NAME}/${NAME}.jar --spring.profiles.active=dev >${LUJING}/${NAME}/nohup.out 2>&1 &

   


总结

通过优化前后对比,我们发现通过jvm参数调整后,VIRT、RES、%MEM这几个指标都有了明显的变化。

VIRT—virtual memory usage虚拟内存

    1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等,单位kb,VIRT=SWAP+RES
    2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

RES:resident memory usage 常驻内存

    1、进程当前使用的内存大小,但不包括swap out,单位kb, RES=CODE+DATA
    2、包含其他进程的共享
    3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
    4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

%MEM

    进程使用的物理内存百分比

posted @ 2020-01-09 19:06  熊猫程序猿  阅读(5461)  评论(0编辑  收藏  举报