linux中打开的文件太多,我们正在关闭文件描述符



我们在linux服务器中面临太多打开的文件,我们已经将ulimits增加到了最大值。

我计划使用gdb命令关闭文件描述符,然后关闭我正在寻找的pid的fd。

这会解决太多文件的问题吗?我们也在寻找解决方案,从应用程序中解决这个问题。

有人能建议用gdb关闭fd来解决我们的问题吗?请提出建议。

当执行lsof命令时,它会在服务器上提供26k个文件。

系统上似乎不太可能有26K不同的.ttf字体文件。

这表明您多次打开相同的.ttf字体,或者您正在泄漏文件描述符。

你应该肯定修复FD泄漏(如果有(——再多的手动关闭FD也不会让服务器工作——过一段时间就会遇到同样的问题。

对于";多次打开同一文件";,通常的解决方案是引入字体缓存——在打开文件之前,检查字体缓存,如果已经打开,则使用其中的数据。这可能增加存储器消耗;打开多次";问题

内存消耗可以通过使用适当的缓存过期策略进行管理(如果必要(。

最新更新