解决:Linux下Java占用CPU突然升高,即使用空的tomcat也不会降低
2015-07-02 00:00
519 查看
摘要: 解决因为闰秒导致Linux下Java占用CPU突然升高
昨天,客户公司打电话给我,说系统不能用了,突然查不出来东西,一个美好的早上就破灭了。因为这个系统是很早以前做的,当时十分小白,没有一丁点的冗余字段,导致满屏幕都是Left Join,运行期间一直卡卡的。按照这个思路就先把sql优化了,把代码上传,重启,试了两次,发现可以查询出来。结果过了5分钟,客户又来电话:又坏了;
再仔细检查,发现同一条sql,在本机执行1到2秒,在服务器执行接近20秒,导致页面等待超时。直接在数据库执行,效果相同,因为我的pc虽然很牛叉,可还是打不过服务器,然后用top命令查看服务器状态,发现java的CPU占到200%,整个服务器的CPU达到100%。
第一段属于废话,第二段属于问题表现,着急的客官从这里开始看
使用命令dmesg,找到一句 inserting second 23:59:60 UTC
如果有这句,很有可能就是闰秒导致的,需要关掉linux的是时间同步(我没有立刻打开,因为害怕。。,立刻打开应该也没事),命令为 service ntpd stop,不需要重启tomcat,再使用top命令查看,Java已经排不到第一页了
昨天,客户公司打电话给我,说系统不能用了,突然查不出来东西,一个美好的早上就破灭了。因为这个系统是很早以前做的,当时十分小白,没有一丁点的冗余字段,导致满屏幕都是Left Join,运行期间一直卡卡的。按照这个思路就先把sql优化了,把代码上传,重启,试了两次,发现可以查询出来。结果过了5分钟,客户又来电话:又坏了;
再仔细检查,发现同一条sql,在本机执行1到2秒,在服务器执行接近20秒,导致页面等待超时。直接在数据库执行,效果相同,因为我的pc虽然很牛叉,可还是打不过服务器,然后用top命令查看服务器状态,发现java的CPU占到200%,整个服务器的CPU达到100%。
第一段属于废话,第二段属于问题表现,着急的客官从这里开始看
使用命令dmesg,找到一句 inserting second 23:59:60 UTC
如果有这句,很有可能就是闰秒导致的,需要关掉linux的是时间同步(我没有立刻打开,因为害怕。。,立刻打开应该也没事),命令为 service ntpd stop,不需要重启tomcat,再使用top命令查看,Java已经排不到第一页了
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Linux socket 初步
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 10 篇对初学者和专家都有用的 Linux 命令教程
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升