好好学习,天天向上!

centos7下优化Apache2.4的内存占用率

laotu | 2021/06/25, 13:48

centos7下假设apache2.4的web服务器,经常出现内存跑满的情况,导致网站访问缓慢,开始以为是mysql的锅,以为是修改引擎模式所致。后来通过top命令查看到原来是apache的进程跑满内存了。

通过查阅资料,发现可以通过对apache的MPM模式下的event参数修改来对内存占用进行优化。

但在我的实践中,其实还可以更简单的操作。步骤如下:

1、检查Apache安装使用的MPM模式,操作命令:

# httpd -V

在输出结果中查看Server MPM:条目即可,Apache提供prefork、worker、event三种不同的MPM模式,目前最新版默认选择event。通过编辑/etc/httpd/conf.modules.d/00-mpm.conf配置文件可以在三个模式之间切换。

2、复制event配置文件

MPM模式的配置文件要生效需要复制到/etc/httpd/conf.d目录下:

cp /usr/share/doc/httpd-2.4.48/httpd-mpm.conf /etc/httpd/conf.d

3、修改event的参数

然后,可以根据自己服务器及网站的需求,对event模式的参数进行修改,如编辑配置文件:

vim /etc/httpd/conf.d/httpd-mpm.conf

<IfModule mpm_event_module>
StartServers                 3 #默认启动进程数
MinSpareThreads             75 #最小线程
MaxSpareThreads            250 #最大线程
ThreadsPerChild             25 #最大子线程数
MaxRequestWorkers         400 #最大请求数量
MaxConnectionsPerChild   200 #最大连接次数,超过后释放线程
</IfModule>

主要将MaxConnectionsPerChild参数值由0改为200。目的用于控制子进程的最大连接数,超过就自动释放。

service httpd reload

这样,在重新加载apache并使event模式默认参数生效后,apache占用内存的情况就已经大为改观了。这时候再访问网站前后台,就不会再有卡顿的问题了。

服务器内存占用优化效果见下图:

优化内存占用

这是两台机子优化内存前后的对比图。

4、关于event模式的更多参数及说明,可以查看官方文档:http://httpd.apache.org/docs/2.4/mod/event.html。

默认分类 | 静态网址 | 发表评论 | 引用 (0)