我正在创建一个负载测试程序,它使用libev为我正在处理的应用程序创建大量开放式TCP连接.由于nofiles限制,目前它以256个连接轰炸:
ulimit -n
256
Run Code Online (Sandbox Code Playgroud)
通过执行以下操作,我可以将此值增加到1024:
ulimit -n 1024
Run Code Online (Sandbox Code Playgroud)
但我不能进一步增加它.理想情况下,我想将其设置为1048576.它给出以下错误:
ulimit: open files: cannot modify limit: Invalid argument
Run Code Online (Sandbox Code Playgroud)
如何在osx上进一步增加ulimit?
我有一个非常简单的程序,在5分钟内编写,打开一个服务器套接字并循环遍历请求,并将发送给它的字节打印到屏幕.
然后我尝试对可以使用多少个连接进行基准测试,以试图找出我可以用这个程序支持多少并发用户.
在另一台机器上(它们之间的网络没有饱和)我创建了一个简单的程序,它进入循环并连接到服务器机器并发送字节"hello world".
当循环为1000-3000时,客户端完成所有发送的请求.当循环超过5000时,在完成第一个X个请求后开始超时.为什么是这样?我确保在循环中关闭我的套接字.
你能在一段时间内创建这么多连接吗?
这个限制是否仅适用于同一台机器,我不必担心生产中5000多个请求都来自不同的机器?