在本文中,我们将知道如何计算Linux环境中进程中的线程数,有几种方法可以做到,但是我们将学习使用'/ proc'和'ps'命令。
使用'/ proc'
在Proc伪文件系统中,该文件位于/ proc目录中,这是查看任务或活动进程的线程数的最简单方法。“ proc”目录以可读文本文件的形式导出,以提供与现有进程和系统硬件(例如中断,CPU,内存,磁盘等)有关的信息。# cat /proc//status
上面的命令是常规语法,它将显示有关带有的进程的详细信息,其中包括进程状态(父PID,UID,GID,睡眠和运行状态,使用的文件数和竞赛数)。它还指示线程总数和进程。
例如,我们想知道进程ID 2907的进程计数,这是我的Linux环境上apache的进程ID,那么我们可以使用以下命令查看它。# cat /proc/2907/status
Name: php-fpm
State: S (sleeping)
Tgid: 2907
Pid: 2907
PPid: 2124
TracerPid: 0
Uid: 48 48 48 48
Gid: 48 48 48 48
Utrace: 0
FDSize: 64
Groups: 48
VmPeak: 445536 kB
VmSize: 382172 kB
VmLck: 0 kB
VmHWM: 84688 kB
VmRSS: 21856 kB
VmData: 17376 kB
VmStk: 88 kB
VmExe: 3396 kB
VmLib: 49280 kB
VmPTE: 548 kB
VmSwap: 0 kB
Threads: 1
SigQ: 0/15205
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000001000
SigCgt: 0000000184000004
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: 1
Cpus_allowed_list: 0
Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 11419
nonvoluntary_ctxt_switches: 25334
在上面的示例中,我们可以看到Threads:1,表示apache进程仅使用一个线程。
我们还可以使用此命令查找在该过程中找到的目录数,为此,我们可以使用以下命令–# /proc//task | wc
这将显示在进程中创建的每个线程中,将在/ proc / / task中创建一个相应的目录,并以其ID命名。
例如,运行以下命令# ls /proc/2907/status | wc
1 1 18
使用“ PS”
通过在命令中添加“ H”选项,“ ps”命令将显示系统正在运行的进程,该选项可以打印进程的线程数。'h'选项将在输出的顶部隐藏标题。# ps hH p 14487 | wc -l
1
在上面的示例中,我们可以看到Threads:1,表示“ apache”进程仅使用一个线程
从本文开始,我们现在可以找出用于进程ID或进程的进程数,我们可以使用任何方法找出在Linux环境上运行的进程数。