查看linux有多少线程总数,linux线程总数
進程關聯線程數統計說明
Linux 系統下,可以通過以下三種方式查詢應用程序(進程)創建了多少線程(thread)。
通過 /proc/$PID/status 進行查看
通過 /proc/$PID/task 目錄下的目錄數判斷線程數量
通過 ps 命令統計線程
通過 /proc/$PID/status 進行查看
首先,通過 ps 等指令,查詢目標進程的進程 ID(PID):
#?以?ssh?進程為例
ps?-ef?|?grep?sshroot
874?????1??0?May31??????????00:00:01?/usr/sbin/sshd?-Droot
3957???874??0?09:59??????????00:00:00?sshd:?root@pts/0root
3993??3959??0?09:59?pts/0????00:00:00?grep?—color=auto?ssh
#?第二列即為相應進程的?PID?號
然后,通過如下指令,結合相應進程的 PID 查詢其已創建線程數:
格式:cat?/proc/$PID/status
示例:
$?cat?/proc/874/status?|?grep
ThreadThreads:????1
#?說明當前該進程創建的線程數為?1
通過 /proc/$PID/task 目錄下的目錄數判斷線程數量
進程每創建一個線程,系統會在 /proc/$PID/task 目錄下創建一個子目錄,目錄名即為線程 ID。通過統計相應進程對應 task目錄下的子目錄數量即可統計出線程數量。操作說明如下。
首先,同樣的,參閱前述說明,通過 ps 等指令,查詢目標進程的進程 ID(PID)。
然后,通過如下指令,結合相應進程的 PID 查詢其已創建線程數:
格式:
ls?/proc/$PID/task?|?wc?-l
示例:
$?ls?/proc/874/task?|?wc?-l
#?返回的數值即為相應進程創建的線程數。
通過 ps 命令統計線程tgps
通過 ps 指令也可以統計進程關聯線程數。說明如下。
首先,同樣的,參閱前述說明,通過 ps 等指令,查詢目標進程的進程 ID(PID)。
然后,通過如下指令,結合相應進程的 PID 查詢其已創建線程數:
格式:
ps?hH?p?$PID?|?wc?-l
參數說明:
-h?表示不顯示標題
-H?表示顯示進程的層級關系
$PID?是相應進程的進程號
示例:
$?ps?hH?p?874?|?wc?-l
#?返回的數值即為相應進程創建的線程數。
Linux 系統無法創建線程錯誤原因及解決方法
問題描述: ?業務軟件或系統日志中可能出現類似如下日志信息:
unable to create new native thread
問題分析: ?出現該錯誤,通常是由于系統無法創建更多進程所致。可以使用如下指令查看當前系統最大可創建線程數。
指令:
ulimit?-a?|?grep
示例輸出:
$?ulimit?-a?|?grep
processesmax?user?processes?(-u)?7812#?max?user?processes
右側的數值即表示當前單用戶可創建的最大線程總數
處理辦法: ?根據操作系統的不同,可以參閱
該文檔修改系統配置文件,調整最大可創建進程數。
總結
以上是生活随笔為你收集整理的查看linux有多少线程总数,linux线程总数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 音视频开发之旅(41)-天空盒
- 下一篇: C语言使用信号量(Linux)