在本文中,我们将知道如何计算Linux环境中进程中的线程数,有几种方法可以做到,但是我们将学习使用'/ proc'和'ps'命令。
在Proc伪文件系统中,该文件位于/ proc目录中,这是查看任务或活动进程的线程数的最简单方法。“ proc”目录以可读文本文件的形式导出,以提供与现有进程和系统硬件(例如中断,CPU,内存,磁盘等)有关的信息。
# cat /proc/<pid>/status
上面的命令是常规语法,它将显示有关带有<pid>的进程的详细信息,其中包括进程状态(父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/<pid>/task | wc
这将显示在进程中创建的每个线程中,将在/ proc / <pid> / task中创建一个相应的目录,并以其ID命名。
例如,运行以下命令
# ls /proc/2907/status | wc 1 1 18
通过在命令中添加“ H”选项,“ ps”命令将显示系统正在运行的进程,该选项可以打印进程的线程数。'h'选项将在输出的顶部隐藏标题。
# ps hH p 14487 | wc -l 1
在上面的示例中,我们可以看到Threads:1,表示“ apache”进程仅使用一个线程
从本文开始,我们现在可以找出用于进程ID或进程的进程数,我们可以使用任何方法找出在Linux环境上运行的进程数。