针对大量长时间运行的请求的Apache调优

针对大量长时间运行的请求的Apache调优,apache,Apache,我们在进行负载测试时遇到了Apache的性能问题,我们想知道是否缺少一些配置。在我们的环境中,Apache提供静态UI内容,并在几个Tomcat服务器之间平衡负载 我们的应用程序的一个主要组件是处理大量相当大的文件的同时上传。这些上传请求命中Apache,Apache将请求代理到Tomcat服务器,文件保存到磁盘,并完成其他一些小事情。由于文件的大小,单个上载请求可能需要一段时间。在我们的负载测试中,我们试图找到一次可以处理多少上传的限制 我们所有的服务器都是Windows,因此我们唯一的mpm

我们在进行负载测试时遇到了Apache的性能问题,我们想知道是否缺少一些配置。在我们的环境中,Apache提供静态UI内容,并在几个Tomcat服务器之间平衡负载

我们的应用程序的一个主要组件是处理大量相当大的文件的同时上传。这些上传请求命中Apache,Apache将请求代理到Tomcat服务器,文件保存到磁盘,并完成其他一些小事情。由于文件的大小,单个上载请求可能需要一段时间。在我们的负载测试中,我们试图找到一次可以处理多少上传的限制

我们所有的服务器都是Windows,因此我们唯一的mpm选择是mpm\u winnt。使用mpm_winnt时,每个孩子的最大线程数为1920,因此最大可能的配置似乎是:

<IfModule mpm_winnt.c>
  ThreadsPerChild       1920
  MaxRequestsPerChild     0
</IfModule>
从CPU、内存或网络的角度来看,Apache运行的服务器没有被征税。看起来我们的硬件应该能够处理更多的负载,但我们遇到了来自mpm_winnt模块的1920个请求这一看似人为的限制


我们能做些什么来提高这个门槛吗?我们希望限制因素与硬件相关(即最大网络流量、CPU、内存等)。任何想法或想法都将不胜感激

结果是1920是默认的线程限制,每个子线程的值不能超过线程限制,这就是我不能超过1920个线程的原因。我在任何配置文件中都找不到线程限制配置,这有点奇怪,因为Apache中的大多数设置通常都使用默认值显示,或者在配置文件中注释掉。无论如何,我添加了它,如下所示,并且能够将线程数增加到15000,这是mpm_winnt的最大值

<IfModule mpm_winnt_module>
   ThreadLimit              15000
   ThreadsPerChild          15000
   MaxConnectionsPerChild   0
</IfModule>

螺纹极限15000
ThreadsPerChild 15000
MaxConnectionsPercild 0
<IfModule mpm_winnt_module>
   ThreadLimit              15000
   ThreadsPerChild          15000
   MaxConnectionsPerChild   0
</IfModule>