Linux 通过 /proc 读取进程和线程信息

  1. CPU 使用情况/proc/<pid>/stat 文件包含了进程的 CPU 使用情况。这个文件包含很多字段,其中第 14 和 15 字段(从 1 开始计数)是用户态和内核态的 CPU 时间。你可以读取这两个字段的值,然后与系统的总 CPU 时间进行比较,来计算出 CPU 的使用率。

  2. 内存占用/proc/<pid>/statm 文件提供了进程的内存使用情况。这个文件包含多个字段,其中第一个字段是进程的总虚拟内存大小,第二个字段是进程的常驻集大小(RSS)。RSS 是进程当前在物理内存中占用的内存大小。

  3. 子进程/proc/<pid>/task 目录包含了进程的所有线程。每个线程都有一个对应的目录,目录名就是线程的 ID。在这个目录下,你可以找到和 /proc/<pid> 目录下相同的文件,比如 statstatm 等,用来获取线程的 CPU 使用情况和内存占用。