套接字:打开的文件太多(24)Apache bench lighttpd

43

当我开始使用Apache Bench测试时:

ab -n 10000 -c 1300 http://example.com/test.php

我遇到了错误:

socket: Too many open files (24)

当我将其更改为“-c 1000”时,就可以正常工作。

因为我可能会有超过1000个并发用户,所以我想解决socket打开文件数过多的问题或增加参数。如何做这个操作,应该在哪里进行?

我在CentOS 5上使用lighttpd。


当我将参数改为“-c 1000”时,它能够正常工作。这帮助我保持懒惰 ;) - Midhun KM
3个回答

97
ulimit -n 10000

根据您的系统配置,这可能无法正常工作。 请参考此页面配置您的系统。


默认情况下,大多数系统每个用户限制文件描述符数量为1024。您需要按照我所提到的文章中描述的方式进行额外设置。这对于我在CentOS5上运行成功。 - catwalk
在OS X EL Capitan上也能正常工作。 - Link14
2
不要执行 ulimit -n 0 - Damien Roche
4
不要这样做。 - jeffci
@jeffci 为什么?你能解释得更好些吗? - Payedimaunt

3

要永久更改最大打开文件数限制,您应该修改/etc/security/limits.conf并重新启动系统:

echo -ne " 
* soft nofile 65536 
* hard nofile 65536 
" >>/etc/security/limits.conf 

0

请查看lighty的文档。您可能需要设置server.max-fds选项。此外,server.max-connections也应相应更改(再次参见文档)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接