新聞中心
在大規(guī)模的系統(tǒng)中,線程是并發(fā)編程的重要組成部分。線程是一種輕量級(jí)的進(jìn)程,它們可以與其它線程共享內(nèi)容,且更加高效。在Linux系統(tǒng)中,了解當(dāng)前運(yùn)行的線程數(shù)量非常重要,因?yàn)檫@可以幫助開發(fā)人員和系統(tǒng)管理員了解并發(fā)程序的行為。本文將介紹如何在Linux系統(tǒng)中查看當(dāng)前運(yùn)行的線程數(shù)。

一、使用top命令查看當(dāng)前進(jìn)程狀態(tài)
top命令是Linux中一個(gè)重要的監(jiān)視器,可以實(shí)時(shí)查看系統(tǒng)中正在執(zhí)行的程序的CPU、內(nèi)存和I/O等等的利用具體情況。在其中,下方有一個(gè)Threads(線程)標(biāo)簽,標(biāo)簽中的數(shù)字則是當(dāng)前系統(tǒng)的線程數(shù)。
二、使用ps命令查看當(dāng)前進(jìn)程
Linux的ps命令可以使用不同的選項(xiàng)來查看不同的信息。查看線程信息,我們可以在終端運(yùn)行以下命令:
ps -eLf
該命令將列出系統(tǒng)中的所有線程,-L選項(xiàng)告訴ps要列出每個(gè)線程的LWP(本地線程ID)。
三、使用pidstat命令聯(lián)系實(shí)時(shí)監(jiān)控線程
pidstat是Linux中的一個(gè)性能監(jiān)控工具,可以幫助我們實(shí)時(shí)地監(jiān)控進(jìn)程和線程的使用情況。可以通過以下命令安裝pidstat:
sudo apt-get install sysstat
安裝完成后,在終端中輸入以下命令:
pidstat -t -p 1
以上命令中,-t選項(xiàng)表示輸出線程信息,-p選項(xiàng)可指定要監(jiān)控的進(jìn)程ID,1表示每一秒都實(shí)時(shí)更新信息。
四、使用/proc文件系統(tǒng)查看系統(tǒng)信息
Linux系統(tǒng)內(nèi)核提供了一個(gè)叫做/proc的虛擬文件系統(tǒng),其中包含了大量的系統(tǒng)信息。可以使用以下命令查看當(dāng)前系統(tǒng)中的線程數(shù):
cat /proc/sys/kernel/threads-max
以上命令將輸出系統(tǒng)支持的更大線程數(shù)。
五、使用htop命令查看進(jìn)程狀態(tài)
htop是一個(gè)交互式的進(jìn)程管理器,類似于top,但提供了更多的功能和用戶友好性。其中包括一個(gè)專用的Threads標(biāo)簽,可以顯示當(dāng)前系統(tǒng)中的線程數(shù)。安裝命令如下:
sudo apt-get install htop
安裝完成后,在終端中輸入htop即可查看進(jìn)程狀態(tài)。
相關(guān)問題拓展閱讀:
- 如何在Linux中查看所有正在運(yùn)行的進(jìn)程
如何在Linux中查看所有正在運(yùn)行的進(jìn)程
可以使用top命令。
top命令提供了運(yùn)行中系統(tǒng)的動(dòng)態(tài)實(shí)時(shí)視圖。在終端中輸老悉入top:
之一行:
10:01:23
當(dāng)前系統(tǒng)時(shí)間
126
days,
14:29
系統(tǒng)已經(jīng)運(yùn)行了126天14小時(shí)29分鐘(在這期間沒有重啟過)
users
當(dāng)前有2個(gè)用戶登錄系統(tǒng)
load
average:
1.15,
1.42,
1.44
load
average后面的三個(gè)數(shù)分別是1分鐘、5分鐘、15分鐘的負(fù)載情況。
load
average數(shù)據(jù)是每隔5秒鐘檢查一次活躍的進(jìn)程數(shù),然后按特定算法計(jì)算出的數(shù)值。如果這個(gè)數(shù)除以邏輯CPU的數(shù)量,結(jié)果高于5的時(shí)候就表明系統(tǒng)在超負(fù)荷運(yùn)轉(zhuǎn)了。
第二行:
Tasks
任務(wù)(進(jìn)程),系統(tǒng)現(xiàn)在共有183個(gè)進(jìn)程,其中處于運(yùn)行中的有1個(gè),182個(gè)在休眠(sleep),stoped狀態(tài)的有0個(gè),zombie狀態(tài)(僵尸)的有0個(gè)。
第三行:cpu狀態(tài)
6.7%
us
用戶空間占用CPU的百分比。
0.4%
sy
內(nèi)核空間占用CPU的百分比。
0.0%
ni
改變過優(yōu)先級(jí)的進(jìn)程占用CPU的百早雀分比
92.9%
id
空閑CPU百分比
0.0%
wa
IO等待占用CPU的百分比
0.0%
hi
硬中斷(Hardware
IRQ)占用CPU的百分比
0.0%
si
軟中斷(Software
Interrupts)占用CPU的百分比
在這里CPU的使用比率和windows概念不陸含早同,如果你不理解用戶空間和內(nèi)核空間,需要充充電了。
第四行:內(nèi)存狀態(tài)
k
total
物理內(nèi)存總量(8GB)
k
used
使用中的內(nèi)存總量(7.7GB)
530668k
free
空閑內(nèi)存總量(530M)
79236k
buffers
緩存的內(nèi)存量
(79M)
第五行:swap交換分區(qū)
k
total
交換區(qū)總量(2GB)
2556k
used
使用的交換區(qū)總量(2.5M)
k
free
空閑交換區(qū)總量(2GB)
k
cached
緩沖的交換區(qū)總量(4GB)
名稱:ps
使用權(quán)限:所有使用者
使用方式:ps
說明:顯示瞬間行程 (process) 的動(dòng)態(tài)
參數(shù):ps的參數(shù)非常多, 在此僅列出幾個(gè)常用的參數(shù)并大略介紹含義
-A 列出所有的進(jìn)程
-w 顯示加寬可以顯示較多的資訊
-au 顯示寬頃較詳細(xì)的資訊
-aux 顯示所有包含其他使用者的行程
############################################################
常用參數(shù):
-A 顯示所有進(jìn)程(等價(jià)于-e)(utility)
-a 顯示一個(gè)終端的所有進(jìn)程,除了會(huì)話引線
-N 忽略選擇。
-d 顯示所有進(jìn)程,但省略所有的會(huì)話引線(utility)
-x 顯示沒有控制終端的進(jìn)程,同時(shí)顯示各個(gè)命令的具體路徑。dx不可合用。(utility)
-p pid 進(jìn)程使用cpu的時(shí)間
-u uid or username 選擇有效的用戶id或者是用戶名
-g gid or groupname 顯示組的所有進(jìn)程。
U username 顯示該用戶下的所有進(jìn)程,且顯示各個(gè)命令的詳細(xì)路徑。如:ps U zhang;(utility)
-f 全部列出,通常和其他選項(xiàng)聯(lián)用。如:ps -fa or ps -fx and so on.
-l 長格式(有F,wchan,C 等字段)
-j 作業(yè)格式
-o 用戶自定義格式。
v 以虛擬存儲(chǔ)器格式顯示
s 以信號(hào)格式顯示
-m 顯示所有的線程
-H 顯示進(jìn)程的層次(和其它的命令合用,如:ps -Ha)(utility)
e 命令之后顯示環(huán)境(如:ps -d e; ps -a e)(utility)
h 不顯示之一行
############################################################
ps命令常用用法(方便查看系統(tǒng)進(jìn)程)
1)ps a 顯示現(xiàn)行終端機(jī)下的所有程序,包括其他用戶的程序。
2)ps -A 顯示所有進(jìn)程。
3)ps c 列出程序時(shí),顯示每個(gè)程序真正的指令名稱,而不包含路徑,參數(shù)或常駐服務(wù)的標(biāo)示。
4)慎圓陸ps -e 此參數(shù)的效果和指定”A”參數(shù)相同。
5)ps e 列出程序時(shí),顯示每個(gè)程序所使用的環(huán)境變量。腔汪
6)ps f 用ASCII字符顯示樹狀結(jié)構(gòu),表達(dá)程序間的相互關(guān)系。
7)ps -H 顯示樹狀結(jié)構(gòu),表示程序間的相互關(guān)系。
8)ps -N 顯示所有的程序,除了執(zhí)行ps指令終端機(jī)下的程序之外。
9)ps s 采用程序信號(hào)的格式顯示程序狀況。
10)ps S 列出程序時(shí),包括已中斷的子程序資料。
11)ps -t 指定終端機(jī)編號(hào),并列出屬于該終端機(jī)的程序的狀況。
12)ps u 以用戶為主的格式來顯示程序狀況。
13)ps x 顯示所有程序,不以終端機(jī)來區(qū)分。
最常用的方法是ps -aux,然后再利用一個(gè)管道符號(hào)導(dǎo)向到grep去查找特定的進(jìn)程,然后再對(duì)特定的進(jìn)程進(jìn)行操作。
############################################################
運(yùn)行 ps aux 的到如下信息:
root:# ps aux
USER PID%CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
msp.0 0.? Ss 20::00 sendmail: Queue runner@01:00:00 f
root.0 0.52 ? Ss 20::00 gpm -m /dev/input/mice -t imps2
htt.0 0.96 ? Ss 20::00 /usr/in/htt -retryonerror 0
htt.0 1.? Sl 20::00 htt_server -nodaemon
root.0 0.92 ? Ss 20::00 crond
xfs.0 1.? Ss 20::00 xfs -droppriv -daemon
root.0 0.52 ? SNs 20::00 anacron -s
root.0 0.20 ? Ss 20::00 /usr/in/atd
dbus.0 0.? Ssl 20::00 dbus-daemon-1 –system
Head標(biāo)頭:
USER 用戶名
UID 用戶ID(User ID)
PID 進(jìn)程ID(Process ID)
PPID 父進(jìn)程的進(jìn)程ID(Parent Process id)
SID 會(huì)話ID(Session id)
%CPU 進(jìn)程的cpu占用率
%MEM 進(jìn)程的內(nèi)存占用率
VSZ 進(jìn)程所使用的虛存的大小(Virtual Size)
RSS 進(jìn)程使用的駐留集大小或者是實(shí)際內(nèi)存的大小,Kbytes字節(jié)。
TTY 與進(jìn)程關(guān)聯(lián)的終端(tty)
STAT 進(jìn)程的狀態(tài):進(jìn)程狀態(tài)使用字符表示的(STAT的狀態(tài)碼)
R 運(yùn)行 Runnable (on run queue)正在運(yùn)行或在運(yùn)行隊(duì)列中等待。
S 睡眠 Sleeping 休眠中, 受阻, 在等待某個(gè)條件的形成或接受到信號(hào)。
I 空閑 Idle
Z 僵死 Zombie(a defunct process)進(jìn)程已終止, 但進(jìn)程描述符存在, 直到父進(jìn)程調(diào)用wait4()系統(tǒng)調(diào)用后釋放。
D 不可中斷 Uninterruptible sleep (ususally IO) 收到信號(hào)不喚醒和不可運(yùn)行, 進(jìn)程必須等待直到有中斷發(fā)生。
T 終止 Terminate 進(jìn)程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號(hào)后停止運(yùn)行運(yùn)行。
P 等待交換頁
W 無駐留頁 has no resident pages沒有足夠的記憶體分頁可分配。
X 死掉的進(jìn)程
ps001.txt
把結(jié)果輸出到ps001.txt文本中并保存。
# more ps001.txt
這里是把所有進(jìn)程顯示出來,并輸出到ps001.txt文件,然后再通過more 來分頁查看。
4、kill 終止(殺死)進(jìn)程,有十幾種控制進(jìn)程的方法,下面是一些常用的方法:
#kill -STOP
發(fā)送SIGSTOP (17,19,23)停止一個(gè)進(jìn)程,而并不消滅這個(gè)進(jìn)程。
#kill -CONT
發(fā)送SIGCONT (19,18,25)重新開始一個(gè)停止的進(jìn)程。
#kill -KILL
發(fā)送SIGKILL (9)強(qiáng)迫進(jìn)程立即停止,并且不實(shí)施清理操作。
#kill -9 -1
終止你擁有的全部進(jìn)程。
SIGKILL 和 SIGSTOP 信號(hào)不能被捕捉、封鎖或者忽略,但是,其它的信號(hào)可以。所以這是你的終極武器。
查看linux中所有正在則知運(yùn)行的進(jìn)程
,可以參考孫橋消如下方法:
1、通過ps命令的-a或者-e參數(shù)來獲取系統(tǒng)中所有的進(jìn)程,這兩個(gè)參數(shù)的作用一樣的。
2、通過top命令來獲取系統(tǒng)中所有的進(jìn)程任務(wù)
。執(zhí)行top命令后,在tasks一欄會(huì)看到總的任務(wù)消升數(shù)。
top動(dòng)態(tài)顯示,ps -aux靜態(tài)顯示
關(guān)于linux查看運(yùn)行線程數(shù)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
當(dāng)前題目:如何在Linux系統(tǒng)中查看運(yùn)行的線程數(shù)?(linux查看運(yùn)行線程數(shù))
文章轉(zhuǎn)載:http://www.fisionsoft.com.cn/article/dppogij.html


咨詢
建站咨詢
