二维码

如何启用 Apache MPM 预分叉以提高性能

1482 人阅读 | 时间:2019年10月11日 14:58

使用 mpm_prefork 充分利用 Apache 服务器。

如何启用 Apache MPM 预分叉以提高性能

图片:阿帕奇

Apache 网络服务器是这个星球上最受欢迎的服务器之一。开箱即用,Apache 在处理平均流量方面做得相当扎实。但是,一旦你开始以高于平均负载的负载来攻击它,在某些情况下,如资源容量和所服务网站的复杂性,您可能会发现它有点困难。如果这描述了您所经历的情况,则多处理模块 (MPM) 预叉模块可能已按顺序排列。

MPM Prefork 模块使用单个控制过程,负责启动子进程。这些子进程侦听连接,并在它们到达时提供服务。MPM Prefork 是自我调节的,因此,除非您需要更大的开销,否则几乎没有理由调整其默认配置。但是,您确实需要启用此模块,因为它已开箱即用。

我将向您展示如何在 Apache 上启用 MPM Prefork 模块。我将在 Ubuntu 服务器 18.04 上演示。

您需要什么

启用此模块所需的唯一功能是:

  • Ubuntu 服务器 18.04 的运行实例

  • Apache 安装并运行

  • 具有 sudo 权限的用户

  • 网络连接

如何启用 mpm_prefork

最有可能的是,mpm_prefork 模块已安装在 Apache 实例上。但是,开箱即用,它未启用。

Apache2 支持前叉和工位。这些都是MMP,但彼此大不相同。前叉模块在启动时创建多个子进程,每个子进程仅处理一个线程。相反,辅助角色使用子进程,每个进程生成多个线程,每个线程都准备好接受新请求。尽管前叉需要更多的 RAM,但它是最安全的模块,在使用非线程安全库时应采用。

要检查预叉模块是否加载,请发出以下命令:

apache2ctl -M | grep prefork

如果看不到任何结果,则未加载预分叉。在加载它之前,您必须首先卸载 mpm_event 模块,因为它们会发生冲突。要卸载 mpm_event,请发出以下命令:

sudo a2dismod mpm_event

使用以下命令重新启动 Apache:

sudo systemctl restart apache2

现在,您可以使用以下命令加载 mpm_prefork:

sudo a2enmod mpm_prefork

再次,重新启动 Apache 与命令:

sudo systemctl restart apache2

如何配置 mpm_prefork

在 Web 服务器确实需要大量开销的偶然性时,您可以对前叉配置进行调整。为此,发出以下命令:

sudo nano /etc/apache2/mods-available/mpm_prefork.conf

在该文件中,您将看到以下选项:

StartServers                       5
MinSpareServers               5
MaxSpareServers              10
MaxRequestWorkers         150
MaxConnectionsPerChild   0

如果您知道服务器负载较大(并且有 RAM 要备用),则可能需要大幅提高这些数字,则可以更改该配置,如下所示:

StartServers                          4
MinSpareServers                  3
MaxSpareServers                 40
MaxRequestWorkers             200
MaxConnectionsPerChild      10000

请务必根据硬件可以处理的内容和预期负载来编辑这些数字。保存并关闭文件。使用以下命令重新启动 Apache:

sudo systemctl restart apache2

此时,启用并配置了 mpm_prefork。如果您有兴趣对此进行测试,可以运行 Perl 脚本。执行此操作时请谨慎使用,因为它是 Perl 脚本,您永远不会知道。事实上,您可能需要先下载脚本并对其进行梳理(检查是否有任何恶意代码)。
使用以下命令下载
脚本:

wget  https://raw.githubusercontent.com/richardforth/apache2buddy/master/apache2buddy.pl

一旦您浏览了它,发现它值得信任,运行命令:

sudo perl apache2buddy.pl

命令完成后,您应该会看到 Apache 内存使用情况的报告 (图 A)。

图 A

如何启用 Apache MPM 预分叉以提高性能

过帐 mpm_prefork 配置内存使用情况。

在那里,你有它。Apache mpm_prefork 正在做它的事情。请务必调整您的配置,以最好地满足您的环境需求,此模块将很好地为您服务。


©著作权归作者所有:来自ZhiKuGroup博客作者没文化的原创作品,如需转载,请注明出处,否则将追究法律责任 来源:ZhiKuGroup博客,欢迎分享。

评论专区
  • 昵 称必填
  • 邮 箱选填
  • 网 址选填
◎已有 0 人评论
搜索
作者介绍
30天热门
×
×
本站会员尊享VIP特权,现在就加入我们吧!登录注册×
»
会员登录
新用户注册
×
会员注册
已有账号登录
×