『壹』 linux終端中如何查看用了多少個線程
1、top -H
top命令是linux下常用的性能分析工具,也是一個強大的系統檢測工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器
-H : Threads toggle是否顯示線程,為on時將顯示所有線程
2、ps xH
ps查看當前用戶的活動進程
-H: Show threads as if they were processes
查看所有存在的線程。
3、ps -mp <PID>
-m: Show threads after processes
查看某個進程的線程
『貳』 linux查看線程優先順序命令
用top或者ps -l查看進程會發現有PR(PRI) NI兩個欄位:
NI 是優先值,是用戶層面的概念, PR是進程的實際優先順序, 是給內核(kernel)看(用)的。
一般情況下,PR=NI+20, 如果一個進程的優先順序PR是20, 那麼它的NI(nice)值就是20-20=0。
進程調度優先順序是從-20到19,一共40個級別,數字越大,表示進程的優先順序越低。默認時候,進程的優先順序是0。查看進程優先順序有兩個辦法:ps和top。top命令顯示的NI列的值。或者可以使用ps -efl來查看,也是在ni列表示了進程的優先順序。《Linux就該這么學》 一起學習,進程的優先順序可以在程序運行的時候設置,也可以在程序運行過程中動態的修改。
『叄』 linux 查看進程有多少線程
有些時候需要確實進程內部當前運行著多少線程,那麼以下幾個方法值得一用。
1.根據進程號進行查詢:
# pstree -p 進程號
# top -Hp 進程號
2.根據進程名字進行查詢:
# pstree -p `ps -e | grep server | awk '{print $1}'`
# pstree -p `ps -e | grep server | awk '{print $1}'` | wc -l
這里利用了管道和命令替換,
關於命令替換,我也是今天才了解,就是說用``括起來的命令會優先執行,然後以其輸出作為其他命令的參數,
上述就是用 ps -e | grep server | awk '{print $1}' 的輸出(進程號),作為 pstree -p 的參數
管道和命令替換的區別是:
管道:管道符號"|"左邊命令的輸出作為右邊命令的輸入
命令替換:將命令替換符"``"中命令的輸出作為其他命令相應位置的參數
『肆』 linux 怎麼查看一個進程的所有線程
1。 使用top命令,具體用法是 top -H加上這個選項,top的每一行就不是顯示一個進程,而是一個線程。
2。 使用ps命令,具體用法是 ps -xH
這樣可以查看所有存在的線程,也可以使用grep作進一步的過濾。
3。 使用ps命令,具體用法是 ps -mq PID
這樣可以看到指定的進程產生的線程數目。
更進一步,其實一些系統監控工具,在本質上也是讀取的系統產生的文件罷了。比如說進程這個事情,
看看這個目錄吧,/proc/5000/ 這裡面有你所有想要的。其實stat代表著當前的一些信息。
使用ps命令來查看進程的時候,進程狀態分別對應的含義如下:
D 不可中斷睡眠 (通常是在IO操作) 收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生
R 正在運行或可運行(在運行隊列排隊中)
S 可中斷睡眠 (休眠中, 受阻, 在等待某個條件的形成或接受到信號)
T 已停止的 進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行
W 正在換頁(2.6.內核之前有效)
X 死進程 (未開啟)
Z 僵屍進程 進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放BSD風格的
< 高優先順序(not nice to other users)
N 低優先順序(nice to other users)
L 頁面鎖定在內存(實時和定製的IO)
s 一個信息頭
l 多線程(使用 CLONE_THREAD,像NPTL的pthreads的那樣)
+ 在前台進程組
『伍』 如何查看linux內核線程
命令行中查看:
1、查看內核版本命令:
1)
cat
/proc/version
2)
uname
-a
3)
uname
-r
2、查看發行版本命令
1)
lsb_release
-a
2)
用命令找到/etc目錄下的issue文件release文件
『陸』 linux怎麼查看線程cpu
可以用下面的命令將 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 與之對應。
『柒』 Linux系統如何查看進程的線程數
Linux系統查看某個進程的線程數可以通過ps命令來進行查詢。以firefox進程為例。
1、查看firefox的進程pid,如下圖所示,firefox的進程pid為3168。
2、查看firefox中的線程數和線程ID,如下圖所示,
其中NLWP
列為線程數
LWP列為線程ID,可見firefox有線程數50。
『捌』 linux怎麼查看線程
1查看物理cpu個數 grep 'physical id' /proc/cpuinfo | sort -u 2查看核心數量 grep 'core id' /proc/cpuinfo | sort -u | wc -l 3查看線程數 grep 'processor' /proc/cpuinfo | sort -u | wc -l 英特爾最新推出了第六代酷睿產品
『玖』 如何在Linux中查看進程的多線程
方法/步驟
問題: 我的程序在其內部創建並執行了多個線程,我怎樣才能在該程序創建線程後監控其中單個線程?我想要看到帶有它們名稱的單個線程詳細情況(如,CPU/內存使用率)。
線程是現代操作系統上進行並行執行的一個流行的編程方面的抽象概念。當一個程序內有多個線程被叉分出用以執行多個流時,這些線程就會在它們之間共享 特定的資源(如,內存地址空間、打開的文件),以使叉分開銷最小化,並避免大量高成本的IPC(進程間通信)通道。這些功能讓線程在並發執行時成為一個高 效的機制。
在Linux中,程序中創建的線程(也稱為輕量級進程,LWP)會具有和程序的PID相同的「線程組ID」。然後,各個線程會獲得其自身的線程 ID(TID)。對於Linux內核調度器而言,線程不過是恰好共享特定資源的標準的進程而已。經典的命令行工具,如ps或top,都可以用來顯示線程級 別的信息,只是默認情況下它們顯示進程級別的信息。
這里提供了在Linux上顯示某個進程的線程的幾種方式。
方法一:PS
在ps命令中,「-T」選項可以開啟線程查看。下面的命令列出了由進程號為<pid>的進程創建的所有線程。
1.$ ps -T -p <pid>
「SID」欄表示線程ID,而「CMD」欄則顯示了線程名稱。
方法二: Top
top命令可以實時顯示各個線程情況。要在top輸出中開啟線程查看,請調用top命令的「-H」選項,該選項會列出所有Linux線程。在top運行時,你也可以通過按「H」鍵將線程查看模式切換為開或關。
1.$ top -H
要讓top輸出某個特定進程<pid>並檢查該進程內運行的線程狀況:
$ top -H -p <pid>
方法三: Htop
一個對用戶更加友好的方式是,通過htop查看單個進程的線程,它是一個基於ncurses的交互進程查看器。該程序允許你在樹狀視圖中監控單個獨立線程。
要在htop中啟用線程查看,請開啟htop,然後按<F2>來進入htop的設置菜單。選擇「設置」欄下面的「顯示選項」,然後開啟「樹狀視圖」和「顯示自定義線程名」選項。按<F10>退出設置。
5
現在,你就會看到下面這樣單個進程的線程視圖。