我从这篇文章中了解到:如何实现1200万个并发连接:MigratoryData是如何做到的,一个客户端可以通过多个IP建立超过64K的连接。
现在我有一台AWS ec2机器用于测试,它有10个IP。在/etc/sysctl.conf中的配置如下:
我启动了一个用C语言编写的进程,并从第一个IP地址创建了60000个连接。一切正常。
然后我启动了另一个进程,试图从第二个IP地址创建60000个连接,但当连接数量达到约7500时(总数:67500),就会出现错误,错误信息为“连接超时”。
问题似乎不是文件描述符限制,因为我仍然可以在客户端机器上打开/读取/写入文件。但是任何对远程服务器的外部连接都会超时。
问题不在服务器端,因为服务器可以接受来自不同客户端机器的更多连接。
看起来限制外部连接数量的是某种设置,而不是打开文件的数量。有人能帮忙吗?
现在我有一台AWS ec2机器用于测试,它有10个IP。在/etc/sysctl.conf中的配置如下:
fs.nr_open = 2000000
fs.file-max = 2000000
而/etc/security/limits.d/def.conf中的配置为:
* soft nofile 2000000
* hard nofile 2000000
我启动了一个用C语言编写的进程,并从第一个IP地址创建了60000个连接。一切正常。
然后我启动了另一个进程,试图从第二个IP地址创建60000个连接,但当连接数量达到约7500时(总数:67500),就会出现错误,错误信息为“连接超时”。
问题似乎不是文件描述符限制,因为我仍然可以在客户端机器上打开/读取/写入文件。但是任何对远程服务器的外部连接都会超时。
问题不在服务器端,因为服务器可以接受来自不同客户端机器的更多连接。
看起来限制外部连接数量的是某种设置,而不是打开文件的数量。有人能帮忙吗?