当用户数达到约250个并发时,我在Apache服务器上面临一个问题。 只有闲置员工编号设置为0时才会出现问题。
所以我的问题是,一个Apache工作人员只提供一个或更多的请求吗? 我怎样才能增加工人或最大用户至less700并发?
我在Windows 2008 R2上使用Apache 2.2,MPMtypes是:mpm_winnt。
mpm_winnt在devise上似乎与mpm_worker非常接近。 mpm_worker使用几个进程(服务器),每个进程有多个线程来提供连接。 mpm_winnt只使用一个进程。
因此,您可以使用ThreadLimit和ThreadsPerChild指令来调整并发连接的数量。
请在盲目更改这两个文件之前阅读文档。
看看MaxClients – 这是prefork和worker的常用设置。
http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxclients
对于使用Prefork MPM的典型小型服务器configuration,您可能需要如下所示:
StartServers 5 MinSpareServers 1 MaxSpareServers 10 ServerLimit 500 MaxClients 500 MaxRequestsPerChild 5000
请注意,这将限制在500.如果你想要更多的只是增加值。 对于通用的小型网站来说,这些价值观是明智的,但是如果你的网站不是“通用的”,那么你真的需要花一些时间并将这些价值定制到你的网站上。
如果你比这个大得多,现在是切换到不同的MPM,如工人或事件的时候了。 这可能需要改变网站的各个方面,但取决于您使用的是什么技术。
对于Threaded MPM (Event,Worker)和一个通用的小型网站:
StartServers 5 MinSpareThreads 1 MaxSpareThreads 10 MaxClients 1024 ThreadsPerChild 64 MaxRequestsPerChild 50000
MPM WinNT只有一个进程(subprocess),所以你想把ThreadsPerChild碰到一些合理的东西。 另一个答案有链接到相关的Apache手册页。