专栏首页java达人java cpu高达100%问题 排查

java cpu高达100%问题 排查

一次系统测试时执行top命令发现cpu竟接近100%!

找到进程id 31260,执行jstack 31260 > cpu31260.log,将堆栈信息dump到log文件中。

通过top -p 31260 -H命令找到占用cpu最多的线程,为31328

打开cpu31260log文件,查找到线程31328的相关信息:

发现是程序代码问题,即该类第37行,原来是一不小心把循环里面的阻塞方法写错了。

while (true) {
      Task task = taskQueue.poll();
      if (task != null) {
         ……..
      }
            …….
}

taskQueue是LinkedBlockingQueue类,程序的本意是在阻塞队列为空时阻塞等待,但poll()方法在获取不到元素时会直接返回null,所以poll()方法应该改成take(),这样就不会有毫无意义的死循环发生。

这里再补充一个小知识点,有时在mvn clean install 的时候经常卡在下载metadata文件,检查更新的地方,导致打包速度变慢。

这和maven仓库的访问速度有关,如果不想频繁检验,可对仓库作一些设置:

       <repository>
	<id>centralmaven</id>
	<url>http://central.maven.org/maven2/</url>
        <releases>
	<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
	</releases>
	<snapshots>
	<enabled>false</enabled>
	</snapshots>
      </repository>

关键是updatePolicy节点,这是maven的更新策略,有多个选项:always表示总是,never表示从不,daily(默认)表示每天,interval:X 表示X分钟。

国内oschina的maven镜像站已经关闭了,知道有个阿里的镜像,速度还可以,但感觉其中的库没有官方的全面:

<mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
  </mirrors>

不知道国内还有没有其他不错的镜像站,知道的朋友可以留言推荐下。

本文分享自微信公众号 - java达人(drjava),作者:卍极客

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-11-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 分分钟了解区块链和挖矿

    可能比较难懂,这次发一个简版的图文并茂的视频,方便大家理解。里面有数字签名方面的内容,不了解的可以先看这里:数字签名是什么?

    java达人
  • MySQL 加锁处理分析

    背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信...

    java达人
  • 关于mysql锁的两个例子

    版本:mysql5.5.52 存储引擎:InnoDB 隔离级别:READ-COMMITTED 示例一: 事务1:左图 事务2:右图 1、 ? 事务...

    java达人
  • 秒杀安全

    简介 我们通常衡量一个Web系统的吞吐率的指标是QPS(Query Per Second,每秒处理请求数),解决每秒数万次的高并发场景,这个指标非常关键。举...

    架构师小秘圈
  • 2019腾讯云代金券汇总

    这里领
  • 社区回顾 | 「3306π」重庆站 线上技术分享会 总结

    昨天(06 月 06 日),3306π 社区原定重庆站的技术分享会,由于疫情关系,依然采用线上直播方式与大家见面。

    爱可生开源社区
  • 揭秘前端精度丢失之谜!!!

    今天测试突然跟我说页面显示的数值和数据库的对应不上,一开始我以为是程序问题,把数据给修改了,但是后面检查程序发现,没有任务问题,用postman请求,发现数据也...

    林老师带你学编程
  • ZBI更新!助您达成商业图表可视化国际顶级水准

    首先,Zebra BI 的研发是基于标准驱动,而这个标准就是 IBCS 。如果您对什么是 IBCS 还不熟悉,那推荐您要阅读:真正的商业图表可视化之道-布道篇。...

    BI佐罗
  • 教程 | 初学者如何学习机器学习中的L1和L2正则化

    选自Medium 作者:Prashant Gupta 机器之心编译 参与:陈韵竹、刘晓坤 训练机器学习模型的要点之一是避免过拟合。如果发生过拟合,模型的精确度会...

    机器之心
  • oracle imp导入时出现skipping table

        最近有同事在使用传统的imp工具导入数据时,总是提示收到skipping table的提示,也就是表被跳过,而不是被重建。即使是将目标数据库上的表对象删...

    Leshami

扫码关注云+社区

领取腾讯云代金券