佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Linux下查看進(jìn)程和線程的方法

Linux下查看進(jìn)程和線程的方法

熱門標(biāo)簽:解決方案 電話機(jī)器人搭建 硅谷的囚徒呼叫中心 服務(wù)器配置 家政服務(wù)網(wǎng)絡(luò) 外呼系統(tǒng) 美團(tuán) 百度競價點(diǎn)擊價格的計算公式

在Linux中查看線程數(shù)的三種方法

1、top -H
手冊中說:-H : Threads toggle
加上這個選項(xiàng)啟動top,top一行顯示一個線程。否則,它一行顯示一個進(jìn)程。
2、ps xH
手冊中說:H Show threads as if they were processes
這樣可以查看所有存在的線程。
3、ps -mp PID>
手冊中說:m Show threads after processes
這樣可以查看一個進(jìn)程起的線程數(shù)。

查看進(jìn)程

1. top 命令

top命令查看系統(tǒng)的資源狀況

  load average表示在過去的一段時間內(nèi)有多少個進(jìn)程企圖獨(dú)占CPU

  zombie 進(jìn)程 :不是異常情況。一個進(jìn)程從創(chuàng)建到結(jié)束在最后那一段時間遍是僵尸。留在內(nèi)存中等待父進(jìn)程取的東西便是僵尸。任何程序都有僵尸狀態(tài),它占用一點(diǎn)內(nèi)存資源,僅僅是表象而已不必害怕。如果程序有問題有機(jī)會遇見,解決大批量僵尸簡單有效的辦法是重起。kill是無任何效果的stop模式:與sleep進(jìn)程應(yīng)區(qū)別,sleep會主動放棄cpu,而stop是被動放棄cpu ,例單步跟蹤,stop(暫停)的進(jìn)程是無法自己回到運(yùn)行狀態(tài)的。

  cpu states:

  nice:讓出百分比irq:中斷處理占用

  idle:空間占用百分比 iowait:輸入輸出等待(如果它很大說明外存有瓶頸,需要升級硬盤(SCSI))

  Mem:內(nèi)存情況

  設(shè)計思想:把資源省下來不用便是浪費(fèi),如添加內(nèi)存后free值會不變,buff值會增大。 判斷物理內(nèi)存夠不夠,看交換分區(qū)的使用狀態(tài)。

  交互命令:

  [Space]立即刷新顯示

  [h]顯示幫助屏幕

  [k] 殺死某進(jìn)程。你會被提示輸入進(jìn)程 ID 以及要發(fā)送給它的信號。 一般的終止進(jìn)程可以使用15信號;如果不能正常結(jié)束那就使用信號9強(qiáng)制結(jié)束該進(jìn)程。默認(rèn)值是信號15。在安全模式中此命令被屏蔽。

  [n] 改變顯示的進(jìn)程數(shù)量。你會被提示輸入數(shù)量。

  [u] 按用戶排序。

  [M] 按內(nèi)存用量排序。

  [o][O] 改變顯示項(xiàng)目的順序。

  [P] 根據(jù)CPU使用百分比大小進(jìn)行排序。

  [T] 根據(jù)時間/累計時間進(jìn)行排序。

  [Ctrl+L] 擦除并且重寫屏幕。

  [q] 退出程序。

  [r] 重新安排一個進(jìn)程的優(yōu)先級別。系統(tǒng)提示用戶輸入需要改變的進(jìn)程PID以及需要設(shè)置的進(jìn)程優(yōu)先級值。輸入一個正值將使優(yōu)先級降低,反之則可以使該進(jìn)程擁有更高的優(yōu)先權(quán)。默認(rèn)值是10。

  [S] 切換到累計模式。

  [s] 改變兩次刷新之間的延遲時間。系統(tǒng)將提示用戶輸入新的時間,單位為s。如果有小數(shù),就換算成m s。輸入0值則系統(tǒng)將不斷刷新,默認(rèn)值是5 s。需要注意的是如果設(shè)置太小的時間,很可能會引起不斷刷新,從而根本來不及看清顯示的情況,而且系統(tǒng)負(fù)載也會大大增加。

  縮寫含義:

  PID每個進(jìn)程的ID

  USER進(jìn)程所有者的用戶名

  PRI每個進(jìn)程的優(yōu)先級別

  NI每個優(yōu)先級的值

  SIZE 進(jìn)程的代碼大小加上數(shù)據(jù)大小再加上堆??臻g大小的總數(shù),單位是KB RSS 進(jìn)程占用的物理內(nèi)存的總數(shù)量,單位是KB

  SHARE進(jìn)程使用共享內(nèi)存的數(shù)量

  STAT 進(jìn)程的狀態(tài)。其中S代表休眠狀態(tài);D代表不可中斷的休眠狀態(tài);R代表運(yùn)行狀態(tài);Z代表僵死狀態(tài);T代表停止或跟蹤狀態(tài)

  %CPU進(jìn)程自最近一次刷新以來所占用的CPU時間和總時間的百分比

  %MEM進(jìn)程占用的物理內(nèi)存占總內(nèi)存的百分比

  TIME進(jìn)程自啟動以來所占用的總CPU時間

  CPU CPU標(biāo)識

  COMMAND進(jìn)程的命令名稱

2. ps命令

ps查看當(dāng)前用戶的活動進(jìn)程,如果加上參數(shù)可以顯示更多的信息,如-a,顯示所有用戶的進(jìn)程


  ps ax :tty值為“?”是守護(hù)進(jìn)程,叫deamon 無終端,大多系統(tǒng)服務(wù)是此進(jìn)程,內(nèi)核態(tài)進(jìn)程是看不到的

      ps axf :看進(jìn)程樹,以樹形方式現(xiàn)實(shí)進(jìn)程列表敲 ,init是1號進(jìn)程,系統(tǒng)所有進(jìn)程都是它派生的,殺不掉

      ps axm :會把線程列出來。在linux下進(jìn)程和線程是統(tǒng)一的,是輕量級進(jìn)程的兩種方式。

  ps axu :顯示進(jìn)程的詳細(xì)狀態(tài)。

  vsz:說此進(jìn)程一共占用了多大物理內(nèi)存。

  rss:請求常駐內(nèi)存多少

查看線程

其實(shí)linux沒有線程,都是用進(jìn)程模仿的

1. ps -ef f
用樹形顯示進(jìn)程和線程,比如說我想找到proftp現(xiàn)在有多少個進(jìn)程/線程,可以用

$ ps -ef f | grep proftpd
nobody 23117 1 0 Dec23 ? S 0:00 proftpd:  (accepting  connections) 
jack 23121 23117 0 Dec23 ? S 7:57 \_ proftpd: jack - ftpsrv:  IDLE
jack 28944 23117 0 Dec23 ? S 4:56 \_ proftpd: jack - ftpsrv:  IDLE

這樣就可以看到proftpd這個進(jìn)程下面掛了兩個線程。
在Linux下面好像因?yàn)闆]有真正的線程,是用進(jìn)程模擬的,有一個是輔助線程,所以真正程序開的線程應(yīng)該只有一個。

2. pstree -c也可以達(dá)到相同的效果
$ pstree -c | grep proftpd
|-proftpd-+-proftpd
| `-proftpd

3. cat /proc/${pid}/status
可以查看大致的情況

4.  pstack

有些系統(tǒng)可以用這個東東,可以查看所有線程的堆棧

如何查看進(jìn)程中各線程的內(nèi)存占用情況?

用ps aux只能查看到進(jìn)程,如果進(jìn)程里面使用了pthread編程,用什么命令才能查詢到進(jìn)程里的線程資源占用?
ps aux | grep不就是了

標(biāo)簽:臨沂 邢臺 撫州 防城港 烏蘭察布 北海 南昌 韶關(guān)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux下查看進(jìn)程和線程的方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    奉新县| 芷江| 习水县| 奉化市| 迁安市| 正镶白旗| 福海县| 双峰县| 吴江市| 仪陇县| 林西县| 炉霍县| 涿鹿县| 石门县| 南部县| 安西县| 香港| 秭归县| 东莞市| 汉阴县| 和硕县| 双鸭山市| 高州市| 彭州市| 元阳县| 台中市| 昆明市| 梓潼县| 胶州市| 红安县| 三门峡市| 新建县| 中宁县| 会昌县| 连江县| 鹤峰县| 万全县| 赤壁市| 廉江市| 靖边县| 云龙县|