我有一个生产鱿鱼服务器,它有一些问题提供内容和报告它是文件描述符.我成功地将它从1024(默认)增加到4096,它似乎解决了我在日志中的错误.对于一些未缓存的调用,我仍然看到响应代码0和0字节,这使我相信在峰值卷(启动风暴)中我的文件描述符计数仍然太低.
我已经阅读了一些帖子,设置可以设置为24k,40k甚至70k.由于这是一个专用的鱿鱼盒,我不担心其他进程/用户在系统范围内竞争文件描述符,但我真的想知道最佳做法是粗略计算我应该配置多少个文件描述符对于ulimit -n.
在我的配置中,我最多有3000个客户端TCP连接,最多3000个服务器端TCP连接,以及一些默认配置在squid配置(cache.log,squid.log)中的日志文件.是不是说我应该将我的ulimit -n设置为3000 3000 2(一些开销金额)?由于缺乏关于此问题的文档,我可能会将其设置为24k,以便永远不必处理它,但我更喜欢使用最佳实践公式 – 就像使用apache2一样,您可以计算需要多少请求的内存希望能够同时处理.
编辑:忘了提到我没有把这些缓存的文件写入磁盘,它们留在内存中.这是几百个文件(总共<5 MB)的网站,这是唯一一个通过它加载的页面,所以这就是我省略了磁盘读/写文件描述符的原因.