我有一个2台机器的设置。我使用一个作为服务器,另一个作为客户端。它们使用1 1Ghz链路直接连接。这两台机器都有4核,8 8Gb内存和几乎100 8Gb的磁盘空间。我需要调优Nginx服务器(我正在尝试使用它,但我也可以使用任何其他服务器)来处理85000个并发连接。我在服务器上有一个1kb的文件,我在客户机上使用curl在所有连接上获取相同的文件。在尝试了各种调优设置之后,当我调用curl大约40000次时,我已经建立了1,500个连接和大约30000个TIME_WAIT连接。有什么方法可以建立TIME_WAITs吗?在调优服务器和客户端方面的任何帮助都将不胜感激。我对使用Linux非常陌生,并试图掌握它的诀窍。这两台机器上的linux版本都是Fedora 20。
发布于 2015-07-23 08:53:18
除了调优Nginx之外,您还需要针对tcp连接、套接字、打开文件等的数量限制来调优Linux安装。
这两个链接应该会给你一个很好的概述:
发布于 2015-07-27 16:47:20
您可能想要检查TCP buffers等为所有这些连接使用了多少内存。
请查看此SO线程:How much memory is consumed by the Linux kernel per TCP/IP network connection?
此外,这个页面也很好:http://www.psc.edu/index.php/networking/641-tcp-tune
假设您的两台机器是同一物理网络,并且延迟非常低,您可以使用相当小的TCP窗口缓冲区大小。现代Linuxes (您没有提到您正在使用哪个内核)具有TCP自动调优功能,可以自动调整这些缓冲区,因此您不必担心这一点,除非您使用的是旧内核。
但是,无论如何,应用程序可以分别分配发送和接收缓冲区,这会禁用TCP自动调优,因此,如果您正在运行这样做的应用程序,您可能希望限制应用程序可以为每个连接请求的缓冲区空间( so文章中提到的net.core.wmem_max和net.core.rmem_max变量)。
发布于 2015-10-01 06:13:43
我建议戴尔实现100万个并发连接,我对mtcp进行了一些调整,并在使用过的https://github.com/eunyoung14/mtcp PowerEdge R210上进行了测试,该R210具有32G内存和8核,可实现100万个并发连接。
https://stackoverflow.com/questions/31576282
复制相似问题