如何用psutil获取这个进程使用的文件描述符的真实数量?
How to obtain the real number of file descriptors used by this process with psutil?
我目前正在测试 psutil API。
当我 运行 这个命令(为了知道文件描述符的数量)时:
p = psutil.Process(PID)
p.num_fds()
我得到 70 个文件描述符。
但是,当我 运行 这个命令与相同的 PID:
p.open_files()
我只得到27
这是什么原因?
原因是 open_files()
returns 仅常规文件,但一个进程可能会打开许多其他类型的 fds(套接字、管道等)。像 lsof 这样的工具会报告所有这些。我决定不在 psutil 中做同样的事情,因为它太复杂、级别太低,而且无法通过使用一致的 API.
进行移植。
我目前正在测试 psutil API。 当我 运行 这个命令(为了知道文件描述符的数量)时:
p = psutil.Process(PID)
p.num_fds()
我得到 70 个文件描述符。
但是,当我 运行 这个命令与相同的 PID:
p.open_files()
我只得到27
这是什么原因?
原因是 open_files()
returns 仅常规文件,但一个进程可能会打开许多其他类型的 fds(套接字、管道等)。像 lsof 这样的工具会报告所有这些。我决定不在 psutil 中做同样的事情,因为它太复杂、级别太低,而且无法通过使用一致的 API.