我遇到了在Ubuntu 12上使用Tomcat7打开过多文件的问题,所以我将打开文件数量的硬限制和软限制分别从4096和1024增加到16384.现在我没有得到任何关于打开文件的更多错误,但总体CPU%似乎已经上升。增加max文件的数量是否也有一些CPU时间成本?如果没有,为什么不将ulimit设置得极高?
答案 0 :(得分:3)
存在ulimit的全部原因是通过防止进程耗尽比“正常”更多的资源来保护系统的整体性能。
“正常”可能会有所不同,具体取决于您正在做什么,但默认情况下设置极限值会超出ulimit的目的,并允许任何进程耗尽大量资源。在没有用户的服务器上,这不如大型多用户环境那么重要,但它仍然是防止错误或被利用进程的有用保护。
您的CPU可能刚刚上升,因为您的计算机现在正在做更多工作而不是错误。
PS - 你想确定你的tomcat环境没有什么问题......拥有数千个打开的文件可能没问题,我不知道你的应用程序,但这也可能是一个标志一些东西越野车。如果是的话,你只是让bug的效果变得更糟糕了:(如果你能解释为什么tomcat需要打开数千个文件,很酷,但如果不是......那就是yikes。