查看linux線程
① linux怎麼查看進程中的線程數
1、 cat /proc/${pid}/status
2、pstree -p ${pid}
3、top -p ${pid} 再按H 或者直接輸入 top -bH -d 3 -p ${pid}
top -H
手冊中說:-H : Threads toggle
加上這個選項啟動top,top一行顯示一個線程。否則,它一行顯示一個進程。
4、ps xH
手冊中說:H Show threads as if they were processes
這樣可以查看所有存在的線程。
5、ps -mp <PID>
手冊中說:m Show threads after processes
這樣可以查看一個進程起的線程數。
② 虛擬機終端怎麼查看線程數
Linux系統中查看線程數的方法:
1、使用top命令,具體用法是 top -H,加上這個選項,top的每一行就不是顯示一個進程,而是一個線程。
2、使用ps命令,具體用法是 ps -xH,這樣可以查看所有存在的線程,也可以使用grep作進一步的過濾。
3、使用ps命令,具體用法是 ps -mq PID,這樣可以看到指定的進程產生的線程數目。
使用ps命令來查看進程的時候,進程狀態分別對應的含義如下
D不可中斷睡眠 、S可中斷睡眠 、W正在換頁、R正在運行或可運行
③ Linux系統如何查看進程的線程數
Linux系統查看某個進程的線程數可以通過ps命令來進行查詢。以firefox進程為例。
1、查看firefox的進程pid,如下圖所示,firefox的進程pid為3168。
2、查看firefox中的線程數和線程ID,如下圖所示,
其中NLWP
列為線程數
LWP列為線程ID,可見firefox有線程數50。
④ linux怎麼查看線程阻塞原因
linux查看線程阻塞原因:pthread_join一般主線程來調用,用來等待子線程退出,因為是等待,所以是阻塞的,一般主線程會依次join所有它創建的子線程。
1)執行top命令,或使用-H選項(顯示所有線程),找到相關的高CPU的PID。
2)生成thread mp 快照(kill -3 PID)。
3)將top命令輸出PID轉換為HEX格式(16進制)。
4)在thread mp data中搜索nid=<Hex PID>。
5)分析受影響的thread和stack trace,精確定位代碼。
特點:
Linux,全稱GNU/Linux,是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX的多用戶、多任務、支持多線程和多CPU的操作系統。伴隨著互聯網的發展,Linux得到了來自全世界軟體愛好者、組織、公司的支持。
它除了在伺服器方面保持著強勁的發展勢頭以外,在個人電腦、嵌入式系統上都有著長足的進步。使用者不僅可以直觀地獲取該操作系統的實現機制,而且可以根據自身的需要來修改完善Linux,使其最大化地適應用戶的需要。
Linux不僅系統性能穩定,而且是開源軟體。其核心防火牆組件性能高效、配置簡單,保證了系統的安全。在很多企業網路中,為了追求速度和安全,Linux不僅僅是被網路運維人員當作伺服器使用,甚至當作網路防火牆,這是Linux的一大亮點。
Linux具有開放源碼、沒有版權、技術社區用戶多等特點,開放源碼使得用戶可以自由裁剪,靈活性高,功能強大,成本低。尤其系統中內嵌網路協議棧,經過適當的配置就可實現路由器的功能。這些特點使得Linux成為開發路由交換設備的理想開發平台。
⑤ linux 查看進程有多少線程
top命令可以實時顯示各個線程情況。要在top輸出中開啟線程查看,請調用top命令的「-H」選項,該選項會列出所有Linux線程。在top運行時,你也可以通過按「H」鍵將線程查看模式切換為開或關。
1.$ top -H
3
要讓top輸出某個特定進程<pid>並檢查該進程內運行的線程狀況:
$ top -H -p <pid>
⑥ Linux系統如何查看進程的線程數
Linux系統查看某個進程的線程數可以通過ps命令來進行查詢。以firefox進程為例。
1、查看firefox的進程pid,如下圖所示,firefox的進程pid為3168。
⑦ Linux最大線程數限制及當前線程數查詢
查看系統允許的最大線程數:
Linux無法直接控制單個進程可擁有的線程數,但有參考公式max = VM/stack_size,默認stack為8k,可通過降低stack大小或增加虛擬內存來調大每個進程可擁有的最大線程數;
對於支持多線程的程序如Java,有可能會遇到一個進程無法創建更多線程的情形,其原因多種多樣,而OS端可能由此參數造成.
查看系統允許的最大進程數:
ulimit -a 顯示當前所有的資源限制
root用戶下執行 ulimit -a 然後查看 max user processes 這個值通常是系統最大線程數的一半:/proc/sys/kernel/threads-max/2
普通用戶下 ulimit -u 出現的max user processes的值 默認是 /etc/security/limits.d/20-nproc.conf(centos6 是90-nproc.conf) 文件中的
普通用戶默認是1024
打開/etc/security/limits.conf (部分的系統是在/etc/security/limits.d/90-nproc.conf)
設置限制數量,第一列表示用戶,* 表示所有用戶
soft nproc :單個用戶可用的最大進程數量(超過會警告);
hard nproc:單個用戶可用的最大進程數量(超過會報錯);
soft nofile :可打開的文件描述符的最大數(超過會警告);
hard nofile :可打開的文件描述符的最大數(超過會報錯);
重啟後生效
reboot
查詢當前某程序的線程數
pstree -p 進程號 | wc -l
管道符號"|"左邊命令的輸出作為右邊命令的輸入
直接修改/etc/security/limits.conf 文件中的 * soft nproc 65535 值後,普通用戶最大進程數無法達到65535 ,因為用戶的max user processes的值,最後是受全局的kernel.pid_max的值限制。也就是說kernel.pid_max=1024 ,那麼你用戶的max user processes的值是127426 ,用戶能打開的最大進程數還是1024。
永久修改系統最高進程數的方法
在/etc/sysctl.conf中添加kernel.pid_max = 65535
vim /etc/sysctl.conf
kernel.pid_max = 65535
或者:
echo "kernel.pid_max = 65535" >> /etc/sysctl.conf
然後重啟機器。
臨時修改的方法:
echo 65535 > /proc/sys/kernel/pid_max
所以以上都操作完成後,才算是正確修改了max user processes 的值