Linux操作系统。调用sys_clone [关闭]时有很多文件描述符

问题描述 投票:-4回答:1

使用包含标志SIGCHLD |的clone创建400个线程CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_VM

和$ lsof | wc -l在运行后向我展示了60万个打开的描述符

我需要做什么?

c++ linux clone
1个回答
1
投票

如果你正在使用CLONE_FILES,你可能不需要做任何事情。

lsof显示每个线程持有的文件描述符的总和,即使这些不同的线程在后端共享一组文件描述符。因此,如果您拥有1000个共享100个文件描述符的线程,那么如果您只使用lsof进行检查,则会打开100,000个文件描述符。

检查/proc/sys/fs/file-nr以查看系统已打开的实际文件描述符数。

至于是否存在可以确定唯一文件描述符列表以及打开它们的进程/线程的工具,我不确定。我自己从来不需要这样做,但它似乎是一个没有人划伤的问题。

© www.soinside.com 2019 - 2024. All rights reserved.