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 解决服务器上 关于内存泄露的实战相关推荐

  1. 客户读取文件服务器上文件的过程,java从服务器上读取文件

    java从服务器上读取文件 [2021-02-03 06:36:28]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/ ...

  2. 华为服务器内存位置,服务器上的内存在哪里

    服务器上的内存在哪里 内容精选 换一换 当您新创建了主机.应用.组件.进程等资源后,ICAgent会以10分钟为周期进行周期性监控数据上报,AOM界面需要等待一个上报周期后方可展示相关监控数据.当您在 ...

  3. java获取服务器上指定文件,java 读取服务器上文件

    java 读取服务器上文件 [2021-02-04 10:02:14]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/ ...

  4. 如何解决H5游戏的内存泄露

    如何解决H5游戏的内存泄露 概述 内存分析步骤 记录第一个快照 记录第二个快照 分析内存数据 容易造成内存泄露的情况 如何尽量避免内存泄露 概述 Chrome 提供了一个很好的内存分析工具,可以帮忙分 ...

  5. 解决服务器上MSDTC不可用的办法

    解决服务器×××上的MSDTC不可用办法 摘自:http://www.cnblogs.com/markhe/archive/2009/04/30/1447223.html MSDTC(分布式交易协调器 ...

  6. 通过离线安装anaconda环境解决服务器上的TensorFlow安装和cuda依赖问题

    通过anaconda离线安装解决服务器上的TensorFlow安装和cuda依赖问题 学校的主机只能通过校园VPN连接,不能连接外网,无法直接使用pip或者conda install安装Python依 ...

  7. Valgrind 检测linux上c++内存泄露

    Linux c++上常用内存泄露检测工具有valgrind, Rational purify.Valgrind免费.Valgrind 可以在 32 位或 64 位 PowerPC/Linux 内核上工 ...

  8. Valgrind 检测linux上c++内存泄露(转)

    Linux c++上常用内存泄露检测工具有valgrind, Rational purify.Valgrind免费.Valgrind 可以在 32 位或 64 位 PowerPC/Linux 内核上工 ...

  9. 解决服务器上 w3wp.exe 和 sqlservr.exe 的内存占用率居高不下的方案

    SQL Server是如何使用内存 最大的开销一般是用于数据缓存,如果内存足够,它会把用过的数据和觉得你会用到的数据统统扔到内存中,直到内存不足的时候,才把命中率低的数据给清掉.所以一般我们在看sta ...

最新文章

  1. Python:列表前加*的作用
  2. 如何通过远程修改另一台电脑注册表
  3. 办公电脑安装虚拟机基本就绪
  4. spring-boot-maven-plugin插件找不到含有main的主类
  5. 处理字符串_6_拆分字符串里的字符和数
  6. MySQL 的 RowNum 实现
  7. why jQuery.clone does not work as expected
  8. python坐标轴刻度设置对数_用对数刻度设置刻度
  9. php设计的意义,PHP设计模式
  10. 高速缓冲存储器(Cache)
  11. mysql基础01 创建表 修改表
  12. matlab imrotate中心,matlab中imrotate
  13. Adobe photoshop 用户名、组织或序列号丢失或无效的解决方法
  14. 达龙微信公众号正式改版啦!!!
  15. 带农历日历的DatePicker控件 - Xamarin控件开发小记
  16. cad断点快捷键_CAD打断(BREAK)命令的使用技巧
  17. 爬取4399网站的图片
  18. 独家 | 那些令人细思恐极的AI技术,哪一个戳中你的命门?
  19. picpick尺子像素大小精度不够准确_picpick尺子像素大小精度不够准确_相机的像素精度,物理定位精度,亚像素定位之间的关系和进行像素的固定误差累积......
  20. MusicPlayerByService

热门文章

  1. WinPcap 编程
  2. ctex宏包介绍与示例
  3. 从4D到成像 | 4D毫米波雷达技术的发展
  4. U2 掌握U盘分区与启动-孙宇彤-专题视频课程
  5. 2022.12.8 半导体器件物理
  6. 因果论在游戏场景中的应用
  7. 三大研究成果入选ISCA ,推动国产自主芯片的产业化落地
  8. 基于三菱PLC大厅自动门系统的控制设计
  9. 米家扫地机器人拆解:性价比是最好的说服力
  10. Linux下区分物理CPU、逻辑CPU、CPU核数、线程数以及查看命令