<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            操作系統

            Linux下查看進程和線程的方法

            時間:2025-03-01 06:32:46 操作系統 我要投稿
            • 相關推薦

            Linux下查看進程和線程的方法

              大家想知道在Linux下怎么查看進程和線程嗎?下面小編為大家整理了Linux下查看進程和線程的方法,希望能幫到大家!

              在Linux中查看線程數的三種方法

              1、top -H

              手冊中說:-H : Threads toggle

              加上這個選項啟動top,top一行顯示一個線程。否則,它一行顯示一個進程。

              2、ps xH

              手冊中說:H Show threads as if they were processes

              這樣可以查看所有存在的線程。

              3、ps -mp

              手冊中說:m Show threads after processes

              這樣可以查看一個進程起的線程數。

              查看進程

              1. top 命令

              top命令查看系統的資源狀況

              load average表示在過去的一段時間內有多少個進程企圖獨占CPU

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

              cpu states:

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

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

              Mem:內存情況

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

              交互命令:

              [Space]立即刷新顯示

              [h]顯示幫助屏幕

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

              [n] 改變顯示的進程數量。你會被提示輸入數量。

              [u] 按用戶排序。

              [M] 按內存用量排序。

              [o][O] 改變顯示項目的順序。

              [P] 根據CPU使用百分比大小進行排序。

              [T] 根據時間/累計時間進行排序。

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

              [q] 退出程序。

              [r] 重新安排一個進程的優先級別。系統提示用戶輸入需要改變的進程PID以及需要設置的進程優先級值。輸入一個正值將使優先級降低,反之則可以使該進程擁有更高的優先權。默認值是10。

              [S] 切換到累計模式。

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

              縮寫含義:

              PID每個進程的ID

              USER進程所有者的用戶名

              PRI每個進程的優先級別

              NI每個優先級的值

              SIZE 進程的代碼大小加上數據大小再加上堆棧空間大小的總數,單位是KB RSS 進程占用的物理內存的總數量,單位是KB

              SHARE進程使用共享內存的數量

              STAT 進程的狀態。其中S代表休眠狀態;D代表不可中斷的休眠狀態;R代表運行狀態;Z代表僵死狀態;T代表停止或跟蹤狀態

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

              %MEM進程占用的物理內存占總內存的百分比

              TIME進程自啟動以來所占用的總CPU時間

              CPU CPU標識

              COMMAND進程的命令名稱

              2. ps命令

              ps查看當前用戶的活動進程,如果加上參數可以顯示更多的信息,如-a,顯示所有用戶的進程

              ps ax :tty值為“?”是守護進程,叫deamon 無終端,大多系統服務是此進程,內核態進程是看不到的

              ps axf :看進程樹,以樹形方式現實進程列表敲 ,init是1號進程,系統所有進程都是它派生的,殺不掉

              ps axm :會把線程列出來。在linux下進程和線程是統一的,是輕量級進程的兩種方式。

              ps axu :顯示進程的詳細狀態。

              vsz:說此進程一共占用了多大物理內存。

              rss:請求常駐內存多少

              查看線程

              其實linux沒有線程,都是用進程模仿的

              1. ps -ef f

              用樹形顯示進程和線程,比如說我想找到proftp現在有多少個進程/線程,可以用

              $ 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這個進程下面掛了兩個線程。

              在Linux下面好像因為沒有真正的線程,是用進程模擬的,有一個是輔助線程,所以真正程序開的線程應該只有一個。

              2. pstree -c也可以達到相同的效果

              $ pstree -c | grep proftpd

              |-proftpd-+-proftpd

              | `-proftpd

              3. cat /proc/${pid}/status

              可以查看大致的情況

              4. pstack

              有些系統可以用這個東東,可以查看所有線程的堆棧

              如何查看進程中各線程的內存占用情況?

              用ps aux只能查看到進程,如果進程里面使用了pthread編程,用什么命令才能查詢到進程里的線程資源占用?

              ps aux | grep不就是了

            【Linux下查看進程和線程的方法】相關文章:

            Linux系統如何查看進程的線程數06-07

            linux系統中快速查看進程pid的方法10-06

            Linux查看系統版本的方法06-26

            linux操作系統要查看系統進程的辦法07-24

            Linux系統下的進程切換的解析08-03

            linux查看磁盤io的方法是什么10-29

            linux系統下openmp多線程編程實例06-28

            關于Linux查看系統版本的方法匯總07-05

            Linux系統中查殺僵尸進程方法介紹09-18

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看