Apache - 最大线程数?

Apache - 最大线程数?

我尝试将 Apache 服务器配置为最多使用 120 个线程,每个线程使用一个 (Oracle) SQL 连接。我通过以下设置实现了此目的:

MaxClients 120

在 httpd.conf 文件中。我还设置了:

oci8.max_persistent = 1

在 php.ini 文件中。

但是,我发现线程/连接的数量偶尔会超过 120。我是否遗漏了什么?

谢谢。

答案1

正如 bindbn 告诉你的那样,你应该检查 MPM

# apache2 -V | grep "Server MPM" 
Server MPM:     XXXX

当你回答他时,你正在使用“prefork”,它的配置与worker非常相似:

<IfModule prefork.c>
  StartServers            8
  MinSpareServers         5
  MaxSpareServers        20
  MaxClients            150
  MaxRequestsPerChild  1000
</IfModule>

更多信息:

http://www.devside.net/articles/apache-performance-tuning

http://www.camelrichard.org/apache-prefork-vs-worker

答案2

检查 MPM:

# apache2 -V | grep "Server MPM"
Server MPM:     Worker

检查正确的部分是否改变:

<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      60
    ThreadLimit          55
    ThreadsPerChild      25
    MaxClients          120
    MaxRequestsPerChild   0
</IfModule>

http://httpd.apache.org/docs/current/mod/mpm_common.html

相关内容