am使用带有标志SIGCHLD的克隆创建400个线程| CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_VM
和$ losf | wc -l在运行后向我显示600 000个打开的描述符
我需要做什么?
答案 0 :(得分:1)
如果您使用的是CLONE_FILES
,则可能不需要执行任何操作。
lsof
显示每个线程保存的文件描述符的总和,即使这些不同的线程在后端共享一组文件描述符。因此,如果您有1000个线程与100个文件描述符共享,那么仅使用lsof
进行检查,就会打开100,000个文件描述符。
选中/proc/sys/fs/file-nr
,以查看系统已打开的文件描述符的实际数量。
关于是否存在可以确定唯一文件描述符列表以及打开了哪些进程/线程的工具,我不确定。我从来不需要自己做,但是这似乎是一个没有人抓到的问题。