Apache的调优备忘录

个人对Apache性能调优的备忘录。
如果有错误,请纠正!

预派生

前提 tí) – Premise.

在Apache中,请求由Apache的子服务器进程处理。

为了避免fork的重负,最好设定子服务器进程在动态生成和终止时不产生fork操作。

调整策略

无论负荷高低,始终保持一定数量的进程运行状态。

预派生的操作

MaxClients是一个绝对值。
子进程数不会超过这个值。

当Apache服务器的负载逐渐增加时

    • 子プロセスを生成していく

 

    • アイドル状態の子プロセスはMinSpareServers以上になるよう維持

 

    • MaxClients以上の子プロセスは生成しない

 

    MinSpareServersよりMaxClientsが強い

当负载变得较低时

    • プロセスがアイドル状態になっていく

 

    アイドル状態の子プロセスがMaxSpareServers以下になるよう殺す

如果负荷持续较低的状态

    子プロセスをMinSpareServersになるまで殺す

结论可以是:

如果将MaxClients = MinSpareServers = MaxSpareServers = N,则

    • 低負荷状態ではMinSpareServers=N個のアイドルプロセスが確保される

 

    • 高負荷状態では最大MaxClients=N個のプロセスしか作成されない

 

    応答しているプロセスが0でもMaxSpareServers=N個のアイドル状態は許されている

换句话说,不会出现分叉。

但是,(服务器的内存)/(单个子进程所使用的最大内存)
将成为上限值。
需要监控和了解子进程所使用的内存量。

以下是以N为500的配置样本。

StartServers 500
MaxClients 500
MinSpareServers 500
MaxSpareServers 500
ServerLimit 500
MaxRequestsPerChild 0

性能参数

启动服务器

生成的子服务器进程数在启动时。默认值为5。
由于子服务器进程数根据负载动态变化,所以意义不太大。
最好将其设置为始终想要运行的数量。

http://httpd.apache.org/docs/2.2/zh_cn/mod/mpm_common.html#startservers

设置示例

StartServers 5

最小空闲服务器数量

子服务器进程处于空闲状态的最小(期望)数量。默认值为5。
换句话说,要一直保持这么多的进程处于空闲状态。

如果没有足够的空闲子服务器进程,将以最高每秒生成一个子服务器进程的速度产生新的子服务器进程。

增大这个值似乎不是一个好的想法。

请将以下内容用中文重新表述,只需要一个选项:

http://httpd.apache.org/docs/2.2/ja/mod/prefork.html#minspareservers

设定样本

MinSpareServers 5

最大空闲服务器数

子服务器进程的最大(期望)数量处于闲置状态。默认值为10。
这意味着当闲置子服务器进程的数量超过此值时,请终止小型服务器进程。

增大这个值似乎是一个不好的想法。

设置示例

MaxSpareServers 19

最大客户量

可以同时响应的请求数量。默认为256。
这意味着可以启动的子服务器进程的最大数量。

请参考以下链接获取关于最大客户端数量(MaxClients)的信息:http://httpd.apache.org/docs/2.2/zh_cn/mod/mpm_common.html#maxclients

設定範本

MaxClients 256

服务器限制

MaxClients的可指定数上限。
换句话说,只要超过MaxClients的值即可。

如果大小超过了一定限度,会分配额外的未使用共享内存,导致不稳定。
只有当MaxClients大于默认值(256)时,才需要设置适当的值。

请参考以下链接获取关于serverlimit的更多信息:
http://httpd.apache.org/docs/2.2/ja/mod/mpm_common.html#serverlimit

设置示例

ServerLimit 256

最大请求数每个子进程

每个子服务器进程能处理的请求总数。默认值为10000。
换句话说,当子服务器进程启动后,只能处理这么多的请求,然后就会终止。

设为0即为无限制。

如有发生内存泄漏等情况,尽管会继续发生内存泄漏,但如果将其设为0,fork的次数将大幅减少。

请点击此链接查看有关“maxrequestsperchild”的详细信息:http://httpd.apache.org/docs/2.0/zh/mod/mod_mpm_common.html#maxrequestsperchild

设置示例

MaxRequestsPerChild 10000
广告
将在 10 秒后关闭
bannerAds