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 cpu高達100%問題 排查
一次系統測試時執行top命令發現cpu竟接近100%! 找到程序id 31260,執行jstack 31260 > cpu31260.log,將堆疊資訊dump到log檔案中。 通過top -p 31260 -H命令找到佔用cpu最多的執行緒,為31328 開啟cpu312
linux cpu佔用100%排查
某伺服器上部署了若干tomcat例項,即若干垂直切分的Java站點服務,以及若干Java微服務,突然收到運維的CPU異常告警。 問:如何定位是哪個服務程序導致CPU過載,哪個執行緒導致CPU過載,哪段程式碼導致CPU過載? 步驟一、找到最耗CPU的程序 工具:top 方法:
java cpu佔用100%分析
主要思路是通過ps分析java程序及相應的佔用高cpu的java執行緒,然後看該執行緒在哪裡一直執行佔用cpu 1:列印使用者、程序id、父程序id、執行緒id(對於此次很重要)、執行時間、CPU使用率、啟動命令並按CPU使用率排序。 ps H -eo user,pid
Linux:CPU使用率100%排查方法
浪費了“黃金五年”的Java程式設計師,還有救嗎? >>>
java CPU 100% 排查(轉載)
一個應用佔用CPU很高,除了確實是計算密集型應用之外,通常原因都是出現了死迴圈。 (友情提示:本博文章歡迎轉載,但請註明出處:hankchen,http://www.blogjava.net/hankchen) 以我們最近出現的一個實際故障為例,介紹怎麼定位和解決這類問題。 根據top命令,發現PI
Java進程CPU使用率高排查
java進程cpu使用率高排查生產java應用,CPU使用率一直很高,經常達到100%,通過以下步驟完美解決,分享一下。1.jps 獲取Java進程的PID。2.jstack pid >> java.txt 導出CPU占用高進程的線程棧。3.top -H -p PID 查看對應進程的哪個線程占用C
Java應用CPU佔用100%原因分析
在linux環境下部署的應用,有時候出於各種原因,出現cpu佔用100%的情況。這時候,就需要快速分析定位cpu佔用的原因。 通常,通過linux系統的top命令,可以看出具體哪個程序佔用了過多的cpu資源。但如果發現是java程序,那麼就需要進一步分析是java程序中的具體哪個執行
Java線上應用故障排查之一:高CPU佔用【轉】
近期java應用,CPU使用率一直很高,經常達到100%,通過以下步驟完美解決,分享一下。 方法一: 轉載:http://www.linuxhot.com/java-cpu-used-high.html 1.jps 獲取Java程序的PID。 2.jstack pid
Java應用CPU佔用100%原因分析(轉載)
在linux環境下部署的應用,有時候出於各種原因,出現cpu佔用100%的情況。這時候,就需要快速分析定位cpu佔用的原因。 通常,通過linux系統的top命令,可以看出具體哪個程序佔用了過多的cpu資源。但如果發現是java程序,那麼就需要進一步分析是java程序中的具
Java線上應用故障排查之一:高CPU佔用
一個應用佔用CPU很高,除了確實是計算密集型應用之外,通常原因都是出現了死迴圈。 以我們最近出現的一個實際故障為例,介紹怎麼定位和解決這類問題。 根據top命令,發現PID為28555的Java程序佔用CPU高達200%,出現故障。 通過ps aux | gre
Java專案伺服器cpu佔用100%解決辦法
專案上線後執行一段時間,突然發現cpu 8個邏輯核心都佔用100%,心情很緊張,然後就在網上找了一些解決方法,具體如下: 1.查詢哪些程序在耗cpu 進入伺服器,top 命令看一下,發現程序6633佔用了800% [[e
排查CPU超100%的方法和解釋
當CPU超過100% 或者接近100% 時有必要對執行緒進行排查 1, top 找出那條程序CPU比較高 PID 2, top -p PID -H 列印 該PID程序下哪條執行緒的CPU佔用比較高 ,tid 3, printf "%x\n" tid 將該id進行16進位制轉
JAVA程序高CPU佔用故障排查
問題描述:生產環境下的某臺tomcat7伺服器,在剛釋出時的時候一切都很正常,在執行一段時間後就出現CPU佔用很高的問題,基本上是負載一天比一天高。問題分析:1,程式屬於CPU密集型,和開發溝通過,排除此類情況。2,程式程式碼有問題,出現死迴圈,可能性極大。問題解決:1,開
CPU上漲100%的問題排查
最近修改了一個快一年沒有發過特性的服務;修改只對深圳set生效;但是服務釋出到三地後,三地的CPU分別從20%增長到40%或40%增長到80%;也就是CPU增長了100%;因為本次改動只對深圳有效,而其他兩地的CPU也增長,那麼可以確認是一年中其他修改導致了CPU的增長。
生產環境下JAVA程序高CPU佔用故障排查
轉自:http://blog.chinaunix.net/uid-10449864-id-3463151.html 問題描述: 生產環境下的某臺tomcat7伺服器,在剛釋出時的時候一切都很正常,在執行一段時間後就出現CPU佔用很高的問題,基本上是負載一天比一天高。 問題分
線上CPU飆升100%問題排查,一篇足矣
一、引子 對於網際網路公司,線上CPU飆升的問題很常見(例如某個活動開始,流量突然飆升時),按照本文的步驟排查,基本1分鐘即可搞定!特此整理排查方法一篇,供大家參考討論提高。 二、問題復現 線上系統突然執行緩慢,CPU飆升,甚至到100%,以及Full GC次數過多,接著就是各種報警:例如介面超時報警等
阿里簡訊回執.net sdk的bug導致生產服務cpu 100%排查
## 一:背景 ### 1. 講故事 去年阿里聚石塔上的所有isv簡訊通道全部對接阿里通訊,我們就做了對接改造,使用阿里提供的`.net sdk`。 網址:https://help.aliyun.com/document_detail/114480.html 同事當時使用的是`ons-.net
java傻瓜簡單100%一定看的懂新手安裝教程
開發工具 images 路徑 pat logs files body path變量 如果 1.java官網 最新的不是很穩定 http://www.oracle.com/technetwork/java/javase/downloads/index.html 一直點
PostgreSQL CPU滿(100%)性能分析及優化(轉)
mark ike -- 過多 mar 是不是 影響 sas sql日誌 PostgreSQL CPU滿(100%)性能分析及優化 轉自:https://help.aliyun.com/knowledge_detail/43562.html 在數據庫運維當中,
mongoDb CPU利用率100%的分析和解決
用戶 定位 idt ase 數據 mes pre 我們 工作 在公司的項目中,突然出現過一個情況,mongodb 的CPU利用率到達100%,導致服務器這邊卡死了,請求了半天無響應,提示請求超時。 因為,當時APP用戶可能會在某一個時間段集中的使用,所以,請求量一下子就飆上