Apache占用内存太高解决方案
内存占用突然飙高的原因竟然是…
最近,我在写博客的时候发现总是写着写着就崩了,重启之后就可以了。 本来以为是服务器IP突然被墙无法访问的原因(这个原因事后想来很蠢,因为重启之后就可以继续访问了所以肯定排除了服务器IP的问题),导致我换了好几次机房都无果。突然意识到,会不会是因为服务器的内存占用比太高了导致一些服务崩掉了。后来查了一下服务器后台的内存占用数据,果然。。。 再顺手一查发现果然是httpd占用太高了。
这是解决后的(虽然仍然占比很多,但这是我在编辑文章的时候截的,实际效果好很多)
- 查看Apache是什么模式的
httpd -V
Ps:如果遇到找不到httpd命令的话,说明apache的文件夹没有加到全局变量里面。那么你就需要执行:export PATH=/usr/local/apache/bin:$PATH
当然,这个只是一次性的,如果你不想下次用的话还需要翻阅你的浏览记录来查找这篇博客的话(尽管我很希望如此),那么就需要将这句话加入到全局配置文件中(或者在用用户目录下修改~/.bashrc用户配置文件)vi /etc/profile
写入以下内容:export PATH="/usr/local/apache/bin:$PATH" 我是event模式的
- 打开httpd的配置文件 (httpd.conf)
首先需要我们知道httpd的配置文件在哪里
进入到返回的路径中,可以发现有一个conf的文件夹,里面存放着我们需要的httpd.conf配置文件,用vi打开。whereis apache
vi httpd.conf //添加一下内容 ServerLimit 16 //最大子进程数量 StartServers 2 //创建子进程的初始数量 MaxRequestWorkers 150 //最大工作线程的数量 MinSpareThreads 10 //最小空闲线程的数量 MaxSpareThreads 30 //最大空闲线程的数量 ThreadsPerChild 10 //每个子进程创建的线程数量 MaxConnectionsPerChild 300 //每个子进程的最大连接数
- 备份httpd.conf
- 重启服务
大功告成!systemctl restart httpd.service
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment