JAVA性能优化,让程序更快更稳定

本文探讨了Java在云环境中遇到的内存溢出问题,分析了Java进程内存占用高的排查方法,包括使用jmap、jstat等工具进行诊断。通过对Java进程启动参数的调整,如-Xmx、-Xms、-XX:MaxPermSize,以及实时性能监控,提供了内存管理和优化策略,以提升程序的稳定性和效率。
摘要由CSDN通过智能技术生成

最新的2017年热门编程语言排行榜已经出炉,java排名第一,纵观目前的市场,无论是IT金融软件服务行业或者云业务或大数据行业,java语言是开发的业务程序运用最广泛的语言之一。

本文主要通过分析云系统遭遇的java进程内存溢出的问题,介绍java进程占用系统内存高时的排查方案及建议的解决方案,同时延伸拓展java进程占用系统内存高的原因以及对于linux操作系统的内存管理和优化方案。

【云环境系统java进程内存占用高】

系统的运维值班人员发现该系统的uc注册页面访问超时,根据监控反馈的报错地址,登录相应的UC注册网页时,发现提示如下:网站维护中。

检查该uc注册业务对应的进程后,发现进程运行正常,检查服务的日志情况,然而并发现没有异常。

最后怀疑可能是该服务器的内存溢出,可能是产品对连接到服务端的线程没做控制,导致已结束、假死或超时的线程未释放内存,或者上述线程释放内存之后,没有进行内存整理,产生碎片,然后越积越大,然后就爆炸了。

但是查看服务器的内存情况如下:

通过以上查询发现,服务器内存总共4G,可用的还有300M左右,笔者查询相关资料后使用jmap -dump:format=b,file=ucweb.bin ${pid}的方法dump相应Java进程运行过程中占用的内存情况,然后导出为二进制文件,需要注意的是,这个对性能有影响,其中format=b是通过二进制的意思,通过这个命令把内存结构dump到二进制文件中,然后结合分析软件eclipse来获取具体情况。

也可以通过jmap –heap ${pid}命令来查看该java进程运行时所打印heap的概要信息,GC使用的算法,heap的配置及wise heap的使用情况。

具体操作方法:

1、使用如下命令查看该业务进程的pid

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值