在编写一些单元测试时,我达到了太多打开文件(Debian VM)的上限 - “无法打开流:打开的文件太多”
除了重启,有什么方法可以清除这个块吗?(即这些打开但未访问的文件会随着时间的推移被清理吗?)
仅供参考 - 我想知道,因为我想为单元测试设置一个持续集成服务器,如果重启是解决这个问题的唯一方法,那么我需要找到一种不同的方法来进行某些单元测试。
在编写一些单元测试时,我达到了太多打开文件(Debian VM)的上限 - “无法打开流:打开的文件太多”
除了重启,有什么方法可以清除这个块吗?(即这些打开但未访问的文件会随着时间的推移被清理吗?)
仅供参考 - 我想知道,因为我想为单元测试设置一个持续集成服务器,如果重启是解决这个问题的唯一方法,那么我需要找到一种不同的方法来进行某些单元测试。
除非您关闭它们或拥有它们的进程死亡。
您用来运行测试的用户可能会受到 ulimits 的限制,因为他们可以打开多少文件。
您是否尝试为运行测试的用户增加最大打开文件数?
要查看用户打开了多少文件(软文件和硬文件):
有时您需要增加系统的全局最大打开文件数也是正常的。所以尝试一下,看看它是否有帮助。
如果您想永久更改最大打开文件数,您需要编辑
/etc/sysctl.conf
文件并添加/更改以下行