1. 程式人生 > >伺服器CPU負載過高,如何定位問題

伺服器CPU負載過高,如何定位問題

CPU負載過高解決問題過程:
1,根據top命令,發現PID為12433的Java程序佔用CPU高達300%,出現故障。

2,找到該程序後,如何定位具體執行緒或程式碼呢,首先顯示執行緒列表,並按照CPU佔用高的執行緒排序:
[[email protected] logs]# ps -mp  12433 -o THREAD,tid,time | sort -rn

顯示結果如下:
USER     %CPU PRI SCNT WCHAN  USER SYSTEM   TID     TIME
root     10.5  19    - -         -      -  1626 00:12:48
root     10.1  19    - -         -      -  3293 00:12:16

找到了耗時最高的執行緒1626,佔用CPU時間有12分鐘了!

將需要的執行緒ID轉換為16進位制格式:
[
[email protected]
logs]# printf "%x\n" 1626
e18

最後列印執行緒的堆疊資訊:
[[email protected] logs]# jstack 12433 |grep e18 -A 30


將輸出的資訊進行匹配就能找出有問題的程式碼。

相關推薦

伺服器CPU負載如何定位問題

CPU負載過高解決問題過程: 1,根據top命令,發現PID為12433的Java程序佔用CPU高達300%,出現故障。 2,找到該程序後,如何定位具體執行緒或程式碼呢,首先顯示執行緒列表,並按照CPU佔用高的執行緒排序: [[email protected] logs]# ps -mp  1243

伺服器cpu負載問題排查

第一步 :執行top命令,查出當前機器執行緒情況 top - 09:14:36 up 146 days, 20:24, 1 user, load average: 0.31, 0.37, 0.45 Tasks: 338 total, 1 running

假設生產環境出現CPU佔用請談談你的分析思路和定位

0、top 1、檢視佔用cpu大的程序 jps -l 或者 ps -ef|grep java|grep -v grep&n

postgresql某進程占用cpu資源降不下來

ted 影響 字段 出了 reat con sha 應該 effect 由於是開發階段,所以並沒有配置postgres的參數,都是使用安裝時的默認配置,以前運行也不見得有什麽不正常,可是前幾天我的cpu資源占用突然升高.查看進程,發現有一個postgres的進程占用CPU都

linux 排查cpu負載異常

問:如何定位是哪個服務程序導致CPU過載,哪個執行緒導致CPU過載,哪段程式碼導致CPU過載? 步驟一、找到最耗CPU的程序 工具:top 方法: 執行top -c ,顯示程序執行資訊列表 鍵入P (大寫p),程序按照CPU使用率排序 圖示: 如上圖,最耗CPU的程序P

CPU負載異常排查實踐與總結

昨天下午突然收到運維郵件報警,顯示資料平臺伺服器cpu利用率達到了98.94%,而且最近一段時間一直持續在70%以上,看起來像是硬體資源到瓶頸需要擴容了,但仔細思考就會發現咱們的業務系統並不是一個高併發或者CPU密集型的應用,這個利用率有點太誇張,硬體瓶頸應該不會這麼快就到了,一定是哪裡的業務程式碼邏輯有問題

Kafka-python 客戶端導致的 cpu 使用且無法消費消息的問題

的確 fse get sum req 今天 als top report 今天遇到一個情況使用了 Kafka-python 1.3.3 來操作讀取 broker 1.0.1 版本的 kafka。出現了 rebalance 之後分配到了客戶端,但是 cpu 利用率很高且無法消

postgresql某程序佔用cpu資源降不下來

由於是開發階段,所以並沒有配置postgres的引數,都是使用安裝時的預設配置,以前執行也不見得有什麼不正常,可是前幾天我的cpu資源佔用突然升高.檢視程序,發現有一個postgres的程序佔用CPU都是80%以上,而且居高不下;剛開始以為是配置上需要修改,但事實上,預設配置基本上是很優化的,而且是開發階段,

java web伺服器cpu佔用的處理

平時專案中有時遇到cpu過高的情況,在此基於自己有限的經驗寫個分享,此處的伺服器都是基於linux平臺。 cpu的佔有執行緒型別總的來說分為兩種: us :使用者空間佔用CPU百分比 sy :核心空間佔用CPU百分比 一般來講CPU us高的解決方法: CPU us

如何解決伺服器CPU使用率的問題

一、找出是因哪個站點導致的?   1、執行cmd; 2、輸入命令 iisapp –a ,如下看到連線池對應的PID,則找到是因 appPool estate站導致的;   二、如何從該站中找出問題,是由於什麼原因? 1、善用伺服器效能跟蹤工具: 如上圖: A、Number

排查tomcat伺服器CPU使用率

tomcat要執行依賴於JDK,tomcat伺服器的CPU使用率過高,大多都是因為部署的web程式的問題。 一、現象描述 在一次線上環境,前臺訪問頁面的速度越來越慢,從瀏覽器F12中看到發出的請求都是pengding的狀態。 二、排查過程 我這裡tomcat部署在linux環境中。下面的排查過程均在linux

面試問題---JAVA程式CPU佔用怎麼定位

今天一個電話面試問了這個問題。回來查了下答案,自己也順帶操作一遍,做個記錄。之前只知道jstack工具可以檢視執行緒狀態這些。比如死鎖這些,主要是之前不知道top -H -p pid這個命令的使用,這命令可以看到程序下面執行緒資訊,拿到執行緒ID,然後再結合jstack命令使用就可以解決這個問題了。下面記錄一

java問題導致linux負載cpu如何定位

1.用top找到最耗資源的程序id [[email protected] bin]# top top - 16:56:14 up 119 days,  6:17,  7 users,  load average: 2.04, 2.07, 2.09 Tasks: 2

排查定位由死迴圈引起的cpu負載或者死鎖

在linux下: linux的top命令可以檢視程序的pid,我們找到java程式的pid, 然後執行 top -Hp pid 就可以檢視到這個程序下執行緒的執行情況。 這樣粗略可以看到哪些執行緒比較繁忙,這時候就用到jdk自帶的小工具jstack(官方文件或者自行 百度)。 我們

MYSQL "ORDER BY rand()"的坑--容易導致機器負載CPU佔用

在一次微信砍價活動營銷中,使用了4核16G10M頻寬的伺服器支撐業務,本來這個配置跑個PHP+MYSQL+nginx肯定輕輕鬆的事情,可是隨著活動的高潮,併發數一高,機器負載核CPU一下子就達到100% 始終找不到原因,只知道是mysql分配的記憶體不夠,一直給它加,但是重啟m

解決線上問題-定位CPU佔用

如果線上伺服器CPU佔用率過高,如何定位問題呢? 1.使用 top 命令檢視佔用CPU最高的pid 2.使用 top -H -p pid或 top -Hp pid命令檢視佔用cpu最大的執行緒id即 tid 3.使用命令 printf ‘%x/n’ tid

Linux定位伺服器CPU負載100%居高不下的問題

最近,Linux伺服器上總是經常會出現幾個CPU利用率達到100%並且一直高居不下,如下圖所示,再Linux上,輸入 top 命令,然後再按一下 1,就會顯示你伺服器邏輯CPU的數量以及現在伺服器CP

伺服器CPU利用率95%以上耗效能sql優化

交易明細查詢模組,大於10併發以上,伺服器CPU利用率達到95%以上,負載超高,監控到如下SQL大量等待,消耗資源嚴重,需要優化sql 資料庫伺服器CPU利用率達到95%以上,負載超高,伺服器不穩定

記一次Linux伺服器top命令us負載但是找不到負載程序引起伺服器頻繁重啟的錯誤核心升級

最近發現一臺測試伺服器頻繁重啟,各種排錯找不到原因, 伺服器:CentOS6 核心:2.6.32-431.1.2.0.1.el6.x86_64 這裡要注意了,引起伺服器頻繁重啟的原因很有可能是核心引起的 隨後查找了目前為止有缺陷的

線上Java程式佔用 CPU 請說一下排查方法?

> 我是風箏,公眾號「古時的風箏」,一個兼具深度與廣度的程式設計師鼓勵師,一個本打算寫詩卻寫起了程式碼的田園碼農! 文章會收錄在 [JavaNewBee](https://github.com/huzhicheng/JavaNewBee) 中,更有 Java 後端知識圖譜,從小白到大牛要走的路都在裡面。 這