我有一个Java程序,该程序有时会同时变成100%CPU使用率和睡眠状态.该程序不是多线程的.

环顾四周,我认为最可能的原因是我对垃圾收集运行Java解释器的方式中的错误或某些不匹配.我只能认为100%的CPU使用率是因为GC.我为程序使用Xmx分配了足够的内存,并且该程序甚至在我分配的数量附近也无法运行.我分配的数量也远远少于机器上可用的总内存.

我找到了这个:

在stackoverflow.com上也有提及,例如:

不过,我找不到解决方案.这是JVM中的错误吗?如果是,我该如何解决?

解决方法:

重现您的问题,当您看到CPU饱和时,请在Java进程上执行JSTACK转储,并使用OS实用程序捕获Process CPU及其线程CPU故障(Linux中为ps -L).您实际上应该设置一个脚本,以大约10或20倍1秒的间隔进行采样.

此后,如果您在Linux上运行,则可以将LWPid与JSTACK输出交叉引用,只需将LWPID从ps -L转换为十六进制,那么您应该很好地进行JSTACK的输出.

此时,您将清楚了解应用程序上的CPU消耗量.

如果问题出在GC上,那么您将看到GC线程在占用CPU,这时JConsole将有助于确定更多的根本原因.否则,您会清楚地注意到是谁造成了CPU消耗,您可以采取相应的措施.

附言我的示例在linux上,如果您未在运行linux,则可以通过谷歌找到获取进程CPU故障转储的方法.

让我知道您发现了什么.

标签:performance,java,garbage-collection

来源: https://codeday.me/bug/20191122/2062121.html

java 分配cpu使用率_Java-JVM-CPU使用率达到100%相关推荐

  1. java.exe占用cpu高_Java进程cpu占用过高问题解决

    cpu是时分(time division)的,操作系统里有很多线程,每个线程的运行时间由cpu决定,cpu会分给每个线程一个时间片,时间片是一个很短的时间长度,如果在时间片内,线程一直占有,则是100 ...

  2. java 进程 cpu占用_JAVA进程CPU占用高的故障排查 – 运维那些事

    问题分析: 1.程序属于CPU密集型,和开发沟通过,排除此类情况. 2.程序代码有问题,出现死循环,可能性极大. 解决过程: 1.根据top命令,发现PID为2633的Java进程占用CPU高达300 ...

  3. java判断磁盘使用率_Java计算磁盘使用率

    华为云文档上的材料值得学习. 翻阅资料,得出: https://www.kernel.org/doc/Documentation/ABI/testing/procfs-diskstats 13 - t ...

  4. java maxpermsize 设多少_JAVA JVM虚拟机选项:Xms Xmx PermSize MaxPermSize 区别

    Xms : 是指设定程序启动时占用内存大小.一般该值设置大的会使程序启动快,但是可能会使本机暂时变慢. Xmx : 是指设定程序运行期间最大可占用的内存大小,如果程序运行需要占用更多的内存,超出这个 ...

  5. java maxpermsize 设多少_java JVM : Xms Xmx PermSize MaxPermSize 区别

    java JVM : Xms Xmx PermSize MaxPermSize 区别 java JVM虚拟机选项: Xms Xmx PermSize MaxPermSize 区别 Xms 是指设定程序 ...

  6. java 线程 cpu_java程序中线程cpu使用率计算

    最近确实遇到题目上的刚需,也是花了一段时间来思考这个问题. cpu使用率如何计算 计算使用率在上学那会就经常算,不过往往计算的是整个程序执行的时间段,现在突然要实时计算还真有点无奈,时间段如何选择是个 ...

  7. java 通过snmp协议获取物理机CPU、内存容量及使用率,存储的容量及使用率

    java 用snmp协议获取物理机CPU.内存容量及使用率,存储的容量及使用率,java获取trap告警 一.SNMP简介 1.什么是snmp 二.SNMP获取信息步骤 1.开启SNMP 2.MIB文 ...

  8. java gc占用cpu问题_Java进程占用CPU高的问题跟踪

    http://www.cublog.cn/u/12331/showart_255325.htmlWebLogic高cpu消耗诊断一例故障分析报告故障描述2007-3-6日上午,在系统监控时发现WebL ...

  9. 如何评估服务器基础性能 - CPU负载、使用率、内存磁盘使用率、网络带宽......

    文章目录 关注服务硬软指标 服务器关键指标 CPU 负载 CPU 使用率 网卡 IN & OUT 内存 & 磁盘 Q&A 附录 关注服务硬软指标 在搭建维护服务时,我们经常和服 ...

  10. Linux 查看CPU 内存 IO使用率,linux 查看CPU内存 网络 流量 磁盘 IO

    使用vmstat命令来察看系统资源情况 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? Q: 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? A: 在命 ...

最新文章

  1. requireJS文件夹
  2. windows系统安装python模块
  3. 兼容IE和火狐、crome的返回XML文件内容
  4. 07-01-安装-Exchange Server 2019 on Win 2019 Core
  5. Linux恢复win分区,找到了linux分区顺序错乱修复方法
  6. 网络布线工程师科普铜缆光纤损耗那点事!
  7. linux内核调度 0号进程,Linux内核源代码情景分析---第四章 进程与进程调度
  8. Matlab基础知识
  9. c语言车牌号5位数,为何有的车牌是五位数字,有的加英文字母?终于知道原因了!...
  10. 在创建生成WIFI二维码手机扫码链接
  11. ps中给图层新建文件夹
  12. AMD将用FPGA干什么?
  13. Linux下service mysqld start 启动MySQL提示Redirecting to /bin/systemctl start mysqld.servic
  14. 反弹shell和键盘记录器实现
  15. android系统ime指令
  16. python助教酱酱是谁_papi酱个人资料
  17. 村上春树的经典语录合集
  18. 北京市政交通一卡通余额提醒
  19. Linux驱动笔试知识
  20. zz十年学会程序设计

热门文章

  1. CentOS下安装JDK1.7
  2. css基础 设置链接颜色
  3. 为什么选择格鲁圣教之Go程序版
  4. [转]WinXP、Win7脚本自动加域及用户资料迁移
  5. BCH将拥有远超过BTC的“最佳货币”体验
  6. 比特币前核心开发者Mike Hearn三年前的预测一一应验
  7. Spring应用注解配置实现IOC
  8. Linux文件与目录管理(文件查阅)
  9. 《C++ Primer Plus》学习笔记 2.1.1 main()函数
  10. relink 11gR2 数据库