java 解决服务器上 关于内存泄露的实战
1. 编写.sh脚本 在脚本中添加如下语句 启动脚本
#!/bin/bash
#要运行的类的全路径类名
CLASS=“com.kafka.TTThread”
#先把之前启动的进程杀掉
ps -ef | grep $CLASS | grep -v grep | awk ‘{print $2}’ | xargs -i{} kill {}
#然后再启动新的进程
JVM_OPT="-Dcom.sun.management.jmxremote.port=10089 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=外网IP"
nohup /opt/java/jdk-17.0.2/bin/java -cp config/:gre.jar:lib/ -Xms1024m -Xmx6002m $JVM_OPT KaTeX parse error: Expected 'EOF', got '&' at position 9: CLASS 2>&̲1 1>CLASS &
给出下方操作步骤
一般内存泄露主要为
数据库连接未关闭
代码异常导致链接未关闭
递归过程中疏忽遗漏
数据自关联,没有走出来,死循环
1. top查看服务器的cpu、和内存信息
2. jps 查看服务进程
3. jvisualvm.exe 在cmd中执行打开本地的GVM的监控软件
4. 查看gc的使用情况 jstat -gc 1302823 1000
看fcg如果太多 就说明一直在执行gc 没有处理实际的任务,需要减少多线程数量
5. 查看堆内存使用情况
jmap -histo:live 1305995 | more 显示当前占用内存最多的直方图
jmap -dump:format=b,file=/tmp/dump.dat 395836
生成dump.dat文件,可以使用sz下载,如果文件大于4G 建议重新启动程序,重新生成小于1G的文件,方便下载和查看。jhat -port 9998 /tmp/dump.dat 可以在服务器上生成,但是不建议操作,因为服务器会进入卡死状态。
6. 查看日志中每秒的执行数量
正常情况在疯狂输出,如果内存怼慢,cpu进入疯狂的GC状态,此时服务器是没有日志打印的,因为线程全部在等待cpu执行fgc,不会操作你的任务。
cat * | grep ‘队列success’ | grep -oP ‘^2022-04-01 \d{2}:\d{2}’ | sort | uniq -c
7. 使用第二步打开的 jvisualvm进行远程服务器的监控
先在远程下方添加服务输入ip:端口 【此处端口为文档最上方.sh上添加的 JVM_OPT中添加的端口地址】
链接后可以查看当前服务器的cpu和内存情况,具体有内存什么泄露,以及是否修复
8具体是什么问题造成异常泄露,需要检查代码,暂时无法进行分析,个人独立思考
java 解决服务器上 关于内存泄露的实战相关推荐
- 客户读取文件服务器上文件的过程,java从服务器上读取文件
java从服务器上读取文件 [2021-02-03 06:36:28] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/ ...
- 华为服务器内存位置,服务器上的内存在哪里
服务器上的内存在哪里 内容精选 换一换 当您新创建了主机.应用.组件.进程等资源后,ICAgent会以10分钟为周期进行周期性监控数据上报,AOM界面需要等待一个上报周期后方可展示相关监控数据.当您在 ...
- java获取服务器上指定文件,java 读取服务器上文件
java 读取服务器上文件 [2021-02-04 10:02:14] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/ ...
- 如何解决H5游戏的内存泄露
如何解决H5游戏的内存泄露 概述 内存分析步骤 记录第一个快照 记录第二个快照 分析内存数据 容易造成内存泄露的情况 如何尽量避免内存泄露 概述 Chrome 提供了一个很好的内存分析工具,可以帮忙分 ...
- 解决服务器上MSDTC不可用的办法
解决服务器×××上的MSDTC不可用办法 摘自:http://www.cnblogs.com/markhe/archive/2009/04/30/1447223.html MSDTC(分布式交易协调器 ...
- 通过离线安装anaconda环境解决服务器上的TensorFlow安装和cuda依赖问题
通过anaconda离线安装解决服务器上的TensorFlow安装和cuda依赖问题 学校的主机只能通过校园VPN连接,不能连接外网,无法直接使用pip或者conda install安装Python依 ...
- Valgrind 检测linux上c++内存泄露
Linux c++上常用内存泄露检测工具有valgrind, Rational purify.Valgrind免费.Valgrind 可以在 32 位或 64 位 PowerPC/Linux 内核上工 ...
- Valgrind 检测linux上c++内存泄露(转)
Linux c++上常用内存泄露检测工具有valgrind, Rational purify.Valgrind免费.Valgrind 可以在 32 位或 64 位 PowerPC/Linux 内核上工 ...
- 解决服务器上 w3wp.exe 和 sqlservr.exe 的内存占用率居高不下的方案
SQL Server是如何使用内存 最大的开销一般是用于数据缓存,如果内存足够,它会把用过的数据和觉得你会用到的数据统统扔到内存中,直到内存不足的时候,才把命中率低的数据给清掉.所以一般我们在看sta ...
最新文章
- Python:列表前加*的作用
- 如何通过远程修改另一台电脑注册表
- 办公电脑安装虚拟机基本就绪
- spring-boot-maven-plugin插件找不到含有main的主类
- 处理字符串_6_拆分字符串里的字符和数
- MySQL 的 RowNum 实现
- why jQuery.clone does not work as expected
- python坐标轴刻度设置对数_用对数刻度设置刻度
- php设计的意义,PHP设计模式
- 高速缓冲存储器(Cache)
- mysql基础01 创建表 修改表
- matlab imrotate中心,matlab中imrotate
- Adobe photoshop 用户名、组织或序列号丢失或无效的解决方法
- 达龙微信公众号正式改版啦!!!
- 带农历日历的DatePicker控件 - Xamarin控件开发小记
- cad断点快捷键_CAD打断(BREAK)命令的使用技巧
- 爬取4399网站的图片
- 独家 | 那些令人细思恐极的AI技术,哪一个戳中你的命门?
- picpick尺子像素大小精度不够准确_picpick尺子像素大小精度不够准确_相机的像素精度,物理定位精度,亚像素定位之间的关系和进行像素的固定误差累积......
- MusicPlayerByService