重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
可以用 top 命令看
創新互聯公司專注為客戶提供全方位的互聯網綜合服務,包含不限于成都網站設計、成都網站制作、運河網絡推廣、重慶小程序開發、運河網絡營銷、運河企業策劃、運河品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創新互聯公司為所有大學生創業者提供運河建站搭建服務,24小時服務熱線:028-86922220,官方網址:www.cdcxhl.com
1.找出cpu耗用厲害的進程pid, 終端執行top命令,然后按下shift+p (shift+m是找出消耗內存最高)查找出cpu利用最厲害的pid號
2.根據上面第一步拿到的pid號,top -H -p pid 。然后按下shift+p,查找出cpu利用率最厲害的線程號,比如top -H -p 1328
3.將獲取到的線程號轉換成16進制,去百度轉換一下就行
4.使用jstack工具將進程信息打印輸出,jstack pid號 /tmp/t.dat,比如jstack 31365 /tmp/t.dat
5.編輯/tmp/t.dat文件,查找線程號對應的信息
Linux系統查看某個進程的線程數可以通過ps命令來進行查詢。以firefox進程為例。
1、查看firefox的進程pid,如下圖所示,firefox的進程pid為3168。
2、查看firefox中的線程數和線程ID,如下圖所示,
其中NLWP
列為線程數
LWP列為線程ID,可見firefox有線程數50。
方法一:PS
在ps命令中,“-T”選項可以開啟線程查看。下面的命令列出了由進程號為pid的進程創建的所有線程。
$ ps -T -p pid
“SID”欄表示線程ID,而“CMD”欄則顯示了線程名稱。
方法二: Top
top命令可以實時顯示各個線程情況。要在top輸出中開啟線程查看,請調用top命令的“-H”選項,該選項會列出所有Linux線程。在top運行時,你也可以通過按“H”鍵將線程查看模式切換為開或關。
$ top -H
要讓top輸出某個特定進程pid并檢查該進程內運行的線程狀況:
$ top -H -p pid
方法三: Htop
一個對用戶更加友好的方式是,通過htop查看單個進程的線程,它是一個基于ncurses的交互進程查看器。該程序允許你在樹狀視圖中監控單個獨立線程。
要在htop中啟用線程查看,請開啟htop,然后按F2來進入htop的設置菜單。選擇“設置”欄下面的“顯示選項”,然后開啟“樹狀視圖”和“顯示自定義線程名”選項。按F10退出設置。
可以用下面的命令將 cpu 占用率高的線程找出來:
ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu
這個命令首先指定參數'H',顯示線程相關的信息,格式輸出中包含:user,pid,ppid,tid,time,%cpu,cmd,然后再用%cpu字段進行排序。這樣就可以找到占用處理器的線程了。
直接使用 ps Hh -eo pid,tid,pcpu | sort -nk3 |tail 獲取對于的進程號和線程號,然后跳轉到3.
查看哪個進程線程占用cpu過高; top / ps -aux, 獲得進程號
確定哪個線程占用cpu過高,進入進程號的目錄:/proc/pid/task,
執行:grep SleepAVG **/status | sort -k2,2 | head, 確定cpu占用較高的線程號。
使用kill -3 pid 會打印線程堆棧的情況
在 Linux 下 top 工具可以顯示 cpu 的平均利用率(user,nice,system,idle,iowait,irq,softirq,etc.),可以顯示每個 cpu 的利用率。但是無法顯示每個線程的 cpu 利用率情況,這時就可能出現這種情況,總的 cpu 利用率中 user 或 system 很高,但是用進程的 cpu 占用率進行排序時,沒有進程的 user 或 system 與之對應。