日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java cpu io高_服务器负载过高问题分析-不是cpu高负载也不是IO负载如何处理(阿里 几乎是必考题)...

發布時間:2025/3/12 编程问答 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java cpu io高_服务器负载过高问题分析-不是cpu高负载也不是IO负载如何处理(阿里 几乎是必考题)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于top命令 經常問load average 參考:load average 定義(網易面試)

問題現象:

1,top命令查詢服務器負載達到2.0-5之間,tomcat的cpu使用率達到104%

load average:

linux系統中的Load對當前CPU工作量的度量。簡單的說是進程隊列的長度。

Load Average 就是一段時間 (1 分鐘、5分鐘、15分鐘) 內平均 Load 。

問題分析過程:

1),磁盤使用率未超出正常范圍

df -l

2),內存使用率未超出正常范圍還有空閑

free

free -m?查看linux系統內存使用量和交換區使用量,如圖所示。

3),服務器流量未現明顯峰值

4)jvm內存狀態未現異常非GC原因

至于具體的jstat jmap jstack 的使用情況

綜合初步預估是tomcat有線程一直在運行占用cpu資源

問題引出:如何確定tomcat的100%的cpu使用率到底問題在哪?

問題定位方案:

使用java提供的是jstack線程分析命令對進程里面的線程狀態進行分析,先導出線程快照再分析具體是那個線程及對應的類

執行步驟:

第一步:ps -ef|grep tomcat 查詢出java/tomcat進程PID(eg:8209)

第二步:ps -aux 查詢出該進程是哪個用戶啟動的(即使ROOT用戶可能也導出線程快照失敗)

第三步:su ?tomcat 切換到進程啟動用戶

第四步:jstack -l 8209 > /usr/local/work/tomcat/8209.stack 導出PID對應的線程信息到文件

第五步:對導出的線程文件下載本地做分析(可以文本打開)

第六步:top -H -p 8209 命令查看對應進程是哪個線程占用CPU過高(eg:8308)

第七步:printf "%x\n" 8308 轉換十進制為十六進制 此處為:2074

第八步:在導出的堆棧文件中搜索線程ID等于nid=0x2074的線程,此處即列出了該線程對應的類

第九步:根據線程信息找到對應的類定位問題成功,找到原因:日志隊列線程一直處于RUNNABLE狀態,一直在while循環判定隊列是否為空

總結

以上是生活随笔為你收集整理的java cpu io高_服务器负载过高问题分析-不是cpu高负载也不是IO负载如何处理(阿里 几乎是必考题)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。