Linux 需要将并发HTTP连接数增加到85000

Linux 需要将并发HTTP连接数增加到85000,linux,curl,nginx,performance-testing,connection,Linux,Curl,Nginx,Performance Testing,Connection,我有两台机器的设置。我使用一个作为服务器,另一个作为客户端。它们通过1Ghz链路直接连接。这两台机器都有4个内核、8Gb ram和近100Gb的磁盘空间。我需要调整Nginx服务器(这是我尝试使用的服务器,但我也可以使用任何其他服务器)来处理85000个并发连接。我在服务器上有一个1kb的文件,我在客户机上使用curl在所有连接上获得相同的文件。 在尝试了各种调优设置之后,当我调用curl大约40000次时,我已经建立了1500个连接和大约30000个TIME\u WAIT连接。我有没有办法确定

我有两台机器的设置。我使用一个作为服务器,另一个作为客户端。它们通过1Ghz链路直接连接。这两台机器都有4个内核、8Gb ram和近100Gb的磁盘空间。我需要调整Nginx服务器(这是我尝试使用的服务器,但我也可以使用任何其他服务器)来处理85000个并发连接。我在服务器上有一个1kb的文件,我在客户机上使用curl在所有连接上获得相同的文件。 在尝试了各种调优设置之后,当我调用curl大约40000次时,我已经建立了1500个连接和大约30000个TIME\u WAIT连接。我有没有办法确定你等待的时间?
如果您能在服务器和客户机的调优方面提供帮助,我们将不胜感激。我对使用Linux非常陌生,并试图掌握它的窍门。这两台机器上的linux版本都是Fedora 20。

除了调优Nginx之外,您还需要根据tcp连接、套接字、打开的文件等数量限制来调优linux安装

这两个链接将为您提供一个很好的概述:


您可能需要检查TCP缓冲区等用于所有这些连接的内存量

请参阅此SO线程:

此外,这一页很好:

考虑到您的两台计算机是同一物理网络,并且延迟非常低,您可以使用相当小的TCP窗口缓冲区大小。现代Linuxes(您没有提到您正在使用的内核)具有TCP自动调整功能,可以自动调整这些缓冲区,因此您不必担心这一点,除非您使用的是旧内核


但是,无论如何,应用程序可以分别分配发送和接收缓冲区,这将禁用TCP自动调整,因此,如果您正在运行一个执行此操作的应用程序,则可能需要限制应用程序每个连接可以请求的缓冲区空间(so文章中提到的net.core.wmem_max和net.core.rmem_max变量).

我建议实现100万个并发连接,我对mtcp进行了一些调整,并在使用过的Dell PowerEdge R210上进行了测试,使用32G ram和8个内核实现了100万个并发连接

谢谢你的链接,我实际上也调整了我的Linux安装,但是运气不好。我注意到有1500个并发连接,我的RAM几乎耗尽了。这可能是我正在使用的curl脚本。你知道如何用bash或python编写多线程脚本,从而在不耗尽RAM的情况下最大化连接吗?如果你只从一个源代码测试它,那么可能限制的不是服务器,而是客户端。您是否也确保增加客户端计算机上的限制?使用其中一个负载测试服务可能更容易,它将通过打开来自多个源的连接来模拟更真实的场景。我用过这些家伙:在预算范围内,你可以尝试在你自己的基础设施上部署蝗虫()。但请记住,除非您可以使用它启动多个主机,否则托管服务将提供更现实的结果。当您推荐一个库时,通常会显示如何应用它。你能举个简单的例子吗?