问题的简短版本是:How to tune\configure macOS (Mojave 10.14.3) settings to allow more than 10k out of TCP connections and more then 16k connection between all each process.
详细信息:
我正在尝试使 MacBookPro(16Gb RAM,Core i7)可用于压力测试 tcp 服务器。服务器本身托管在单独的 pc 上,所以现在的问题仅与传出连接有关。
以下建议已经处理并帮助我显着增加了初始操作系统限制。
1)我使用[launchctl](在Mac上执行gatling时“打开的文件太多”)将maxfiles限制增加到100万。
2)我使用sysctl来设置\检查 kern.maxfiles 限制。实际上(据我所知)这与#1 相同。
3)我玩过ulimit。实际上我没有注意到这个工具对我的操作系统有任何影响。但无论如何...
所以现在我的 MacOS 可以为每个进程建立大约 10k 个连接,系统中的总连接数为 16k。
为简单起见,我的工具只是在无限循环中打开 TCP 连接并等待。
try
{
while (true)
{
CreateAndConnectSocket(); //add socket to list
++connectedSockets;
}
}
catch(Exception e)
{
LogWrite("Connected sockets:" + connectedSockets);
LogWrite(e);
WaitForAnyKey(); …Run Code Online (Sandbox Code Playgroud)