使用top命令查看系统资源的使用情况

top

获取java的PID

或者

jps -l

jps -v

通过命令查看进程的线程情况

**ps p pid-L -o pcpu,pmem,pid,tid,time,tname,cmd**

找到以下进程中,CPU利用率比较高的线程号TID(十进制数),此处为12394

接下来就可以通过jstack查看内存使用的堆栈。

将获取的线程号PID(十进制数)转换成十六进制

printf "%x\n"  12494

结果 30ce

查看线程占内存信息

jstack pid |grep 16进制的线程id -a10

-a10的作用额外显示上下10行

**at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:748)

"Timer-1" #27 prio=5 os_prio=0 tid=0x00007fcc502082e0 nid=0x30e3 in Object.wait() [0x00007fcc58fa7000]

java.lang.Thread.State: TIMED_WAITING (on object monitor)

at java.lang.Object.wait(Native Method)

at java.util.TimerThread.mainLoop(Timer.java:552)

- locked <0x00000000f5f21658> (a java.util.TaskQueue)

at java.util.TimerThread.run(Timer.java:505) "MVStore background writer nio:/root/solo_h2/db.mv.db" #23 daemon prio=5 os_prio=0 tid=0x00007fcc7cacbb20 nid=0x30ce in Object.wait() [0x00007fcc592a8000]

java.lang.Thread.State: TIMED_WAITING (on object monitor)

at java.lang.Object.wait(Native Method)

at org.h2.mvstore.MVStore$BackgroundWriterThread.run(MVStore.java:2684)

- locked <0x00000000f5ea6178> (a java.lang.Object) "Abandoned connection cleanup thread" #21 daemon prio=5 os_prio=0 tid=0x00007fcc7ca9bef0 nid=0x30cc in Object.wait() [0x00007fcc593a9000]

java.lang.Thread.State: TIMED_WAITING (on object monitor)

at java.lang.Object.wait(Native Method)

at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)

- locked <0x00000000f5e1c750> (a java.lang.ref.ReferenceQueue$Lock)**

可以看到这个线程状态为:WAITING。通过查看文件分析看到大量Java Thread State。

说明它在等待另一个条件的发生,来把自己唤醒,或者干脆它是调用了 sleep(N)。

此时线程状态大致为以下几种:

java.lang.Thread.State: WAITING (parking):一直等那个条件发生;

java.lang.Thread.State: TIMED_WAITING (parking或sleeping):定时的,那个条件不到来,也将定时唤醒自己。

或者输出该进程的堆栈日志文件里

**jstack -l pid> jstack.log**

sz jstack.log 发送文件到桌面

再次使用十六进度ID查询也行

相关命令

1、jps 显示指定系统内的所有JVM进程

2、jstat 收集JVM各方面的运行数据

3、jinfo  显示JVM配置信息

4、jmap  堆快照

5、jhat  分析headdump文件

6、jstack  显示JVM的线程快照

查看线程信息

ps -mp pid -o THREAD,tid,time|wc -l 查看线程数

ps -mp pid -o THREAD,tid,time | sort -rn | head -10 线程列表,并按照CPU占用高的线程排序

参考资料

java导致系统满载_排查解决java进程占用系统内存高相关推荐

  1. java http请求 乱码_怎么解决java中的http请求乱码

    怎么解决java中的http请求乱码 发布时间:2020-06-23 20:00:11 来源:亿速云 阅读:90 作者:元一 怎么解决java中的http请求乱码?针对这个问题,今天小编总结了这篇文章 ...

  2. java导出excel文件名_怎么解决java导出excel时文件名乱码

    怎么解决java导出excel时文件名乱码 发布时间:2020-06-19 16:59:00 来源:亿速云 阅读:137 作者:元一 java解决导出Excel时文件名乱码的方法示例:String a ...

  3. java字符乱码问题_怎么解决java中的字符乱码问题

    怎么解决java中的字符乱码问题 发布时间:2020-06-28 14:53:09 来源:亿速云 阅读:108 作者:Leah 怎么解决java中的字符乱码问题?相信很多没有经验的人对此束手无策,为此 ...

  4. 如何解决java中的安全问题_如何解决java中“使用了未经检查或不安全的操作 请使用 -Xlint:unchecked 重新编译 ”的问题...

    导语:叶子写了一个Gradle构建的Spring Boot的项目,在IntelliJ IDEA的Terminal中使用命令Gradle build编译时提示:"ResultUtil.java ...

  5. java double相减_完美解决java double数相加和相减的方案

    我就废话不多说了,大家还是直接看代码吧~ /** * double的计算不精确,会有类似0.0000000000000002的误差,正确的方法是使用BigDecimal或者用整型 * 整型地方法适合于 ...

  6. 排查解决Java进程占用内存过高

    排查解决Java进程占用内存过高 1 在项目部署运行之前 1 检查JVM参数设置 2 检查代码逻辑 3 使用内存分析工具 4 检查线程 5 调整应用程序的设计 7 调整硬件资源 2 在项目部署运行之后 ...

  7. linux下查找java进程占用CPU过高原因

    linux下查找java进程占用CPU过高原因 1. 查找进程 top查看进程占用资源情况 明显看出java的两个进程22714,12406占用过高cpu. 2.查找线程 使用top -H -p &l ...

  8. linux 空闲物理内存 很少,linux系统free查看内存,发现可用物理内存很少,但是查看进程却发现没进程占用大内存...

    1.现象 当我们使用free命令查看内存的时候,发现可用物理内存很少,但是通过进程查看没有进程占用大内存. [root@nexus-76150 ~]# free -h total usedfreesh ...

  9. iis worker process内存占用大_安卓模拟器磁盘空间占用大/内存空间不足

    长期使用模拟器.模拟器多开等问题,都会占用内存空间,久而久之就会出现内存空间不足.硬盘占用大的现象,可能会导致模拟器在运行中崩溃,游戏及应用闪退,模拟器卡顿等问题.如何解决硬盘空间占用大和内存不足的问 ...

最新文章

  1. getBoundingClientRect计算页面元素的offsetLeft、offsetTop
  2. Spring5源码 - 12 Spring事件监听机制_异步事件监听应用及源码解析
  3. Struts2、Spring3、MyBatis3整合ExtJS,完成ColumnTree 【一】
  4. 云服务器开启ftp_用云服务器怎么挂机器人
  5. mysql慢日志管理
  6. html拖放数据库字段,HTML5 拖放(Drag 和 Drop)
  7. 对一个存储过程语法的解读
  8. JAVA聊天室简易版1.0(多线程)
  9. 100-GAMP安装调试细则
  10. 各大快递电子面单---Api接口(顺丰、快递鸟、菜鸟)
  11. nginx的使用(6)—— 配置静态代理
  12. win10计算机无限弹网页,Win10老弹出窗口怎么回事?Win10持续闪现神秘窗口现象的解决办法...
  13. Python 进行debug的错误most likely due to a circular import
  14. 工作笔记-thingworx连接mongdb
  15. table 超级详细的 商品订单列表
  16. GPA——平均绩点计算器(5.0分制)
  17. 线程切换哪家强?RxJava与Flow的操作符对比
  18. office出现错误无法安装的解决办法
  19. 超级计算机“看”新冠疫情,进一步观察缓激肽假说
  20. jquery获取所有子元素宽度之和

热门文章

  1. 微信小程序自动化测试——录制回放
  2. JS模块化(CommomJS规范和ES6规范)
  3. EF Core上下文DbContext相关配置和生命周期
  4. Thinkphp 威客任务多端、可封装APP
  5. 雷诺又回来了 雷诺江铃D180能否打开中国市场
  6. 太平洋热带风情的体验,爸爸去哪儿2大电影 萌娃萌爸的圣诞之旅
  7. 电磁波,和光成像原理
  8. 揭秘LOL背后的IT基础架构丨踏上部署多样性的征程
  9. MyEclipse 10 安装教程(公开版)
  10. 找程序员做老公的十大好处