1. 程式人生 > >假設生產環境出現CPU佔用過高,請談談你的分析思路和定位

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

0、top

1、檢視佔用cpu大的程序

jps -l 或者 ps -ef|grep java|grep -v grep 

eg:

2、定位到具體執行緒或程式碼

ps -mp 5101(程序id) -o THREAD(程序),tid ,time

引數說明

-m:顯示所有的執行緒

-p :pid程序使用的cpu的時間

-o:該引數後是使用者自定義格式

 

3、將需要的執行緒id轉換為16進位制格式(英文小寫格式)

例如:3929轉為16進製為f59

等價於 printf "%x\n" 有問題的執行緒id

4、打印出程序id為對應執行緒id對應的前60行

jstack 程序id | grep tid f59(16進位制執行緒id小寫英文) -A60

相關推薦

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

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

效能優化-CPU佔用問題排查

1. 效能優化是什麼? 1.1 效能優化就是發揮機器本來的效能 1.2 效能瓶頸在哪裡,木桶效應。   CPU佔用過高 1、現象重現 CPU佔用過高一般情況是程式碼中出現了迴圈呼叫,最容易出現的情況有幾種: a)遞迴呼叫,退出機制設計的不夠

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

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

cpu佔用排查

top命令是Linux下常用的效能分析工具,能夠實時顯示系統中各個程序的資源佔用狀況,類似於Windows的工作管理員 內容解釋: PID:程序的ID USER:程序所有者 PR:程序的優先級別,越小越優先被執行 NInice:值 VIRT:程序佔用的虛擬記憶體 RES:程序佔用的實體記憶體 SHR:程

java執行CPU佔用追蹤

流程執行命令: 1.top  查到pid 28555 2.ps aux|grep 28555 確定到是tomcat的程序 3.顯示執行緒列表 ps -mp 28555 -o THREAD,tid,time   查到tid 28802 4. printf "%x\n" 2880

linux檢視java程序cpu佔用

 linux下查詢java程序佔用CPU過高原因1. 查詢程序top檢視程序佔用資源情況明顯看出java的兩個程序22714,12406佔用過高cpu. 2.查詢執行緒使用top -H -p <pid>檢視執行緒佔用情況 3.查詢java的堆疊資訊將執行緒id轉換成十

Win10 服務主機:本地系統 CPU佔用

這種情況,一般開機後,本地系統的CPU佔用就一直維持在30%左右,風扇一直轉很耗電。 可能是windows版本的問題,我在不同的機子上裝了四五個系統,都出現了這種情況。 解決方法如下: 1. 找到工作管理員中的“ 服務主機:本地系統”->“Windows Upda

MySQL案例:一次單核CPU佔用問題的處理

客戶現場反饋,top的檢查結果中,一個CPU的佔用一直是100%。實際上現場有4個CPU,而且這個伺服器是mysql專屬伺服器。 我的第一反應是io_thread一類的引數設定有問題,檢查以後發現read和write的thread設定都是4,這和CPU數一致,因此可以斷定這並不是單顆CPU佔用過高的問題。

vsCode剛開啟卡頓cpu佔用的原因

原因是:vscode剛開啟時預設搜尋路徑時陷入了死迴圈(也不能說死迴圈吧,就是大量搜尋導致的) 解決辦法:檔案->首選項->設定,然後搜尋“search.followSymlinks”改為false("search.followSymlinks": false,

C# WinForm CPU佔用

原因:程式中因為使用ThreadPool 多執行緒操作.Form.Invoke 用了很多,造成CPU佔用 90%以上,甚至程式假死..... 我一度去掉所有lock資料庫操作什麼的程式碼,都沒大的改善..... 解決方法: 每次呼叫完後. 讓她睡個300毫秒(System.Threading.Thre

解決win10系統CPU佔用【親測非常有效】

win10 系統的到來,讓使用者體驗到了更好的視覺效果和完善的服務,但是魚和熊掌不可兼得,這些良好的優點同時也帶給電腦更多的負荷,CPU各種100%燙的要命,風扇呼呼的吹。所以我們不得不對win10進行一丟丟的改造。 以下內容是我在網上尋找的資料,我稍作了整理

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

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

linux主機cpu 佔用分析

1.用top命令檢視哪個程序佔用CPU高 gateway閘道器程序14094佔用CPU高達891%,這個數值是程序內各個執行緒佔用CPU的累加值。 PID USER PR NI VIRT RES SHR S %CPU %MEM T

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

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

如何排查CPU佔用以及常見的幾種情況

在最近上線過程中遇到cpu佔用率過高問題由於問題已解決,此時僅重現操作方法1.先用top命令,找到cpu佔用最高的程序 PID  如上圖2.再用ps -mp pid -o THREAD,tid,time   查詢程序中,那個執行緒的cpu佔用率高 記住TID3.jstack

效能優化-Android之ANR問題分析解決 traces.txt檔案分析 CPU佔用

(由於公司專案特殊情況,需要使用一些小廠的三防功能手機,不能使用我們平時用的這些民用手機) 前期測試的時候是用民用手機測試的,有六七種機型(小米,華為,中興,oppo),使用過程中均沒有出現ANR的情況,但是在公司採購的一款工程機上面用了一段時間後肯定就會出現ANR,出現了

分析JAVA應用CPU佔用的問題

使用jstack分析java程式cpu佔用率過高的有關問題 使用jstack分析java程式cpu佔用率過高的問題 1,使用jps查找出java程序的pid,如3707 2,使用top -p 14292 -H觀察該程序中所有執行緒的CPU佔用。

java web伺服器cpu佔用的處理

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

我的計算機問題解決之:NT Kernel & System 程序CPU佔用(開機便保持在50%)

按CPU排序之後你就會發現是什麼後臺服務佔用了那麼高的CPU,我到後來才發現竟然是91助手(連線android和PC的一個軟體),當時雖然解除安裝了91助手,但是它竟然在C:windows\System32\drivers下面留下了91Ass**.sys的一個檔案,每次進系統都會載入,直接導致了我的CPU佔用

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

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