使用 top 命令查看进程内存使用量
1 |
top |
按 Shift + m, 以内存使用量排序, 可以看到 apache 有多个进程, 占用了很多内存, 记录下单个进程占用最多内存数, 我的是 40M.
按 q 退出 top
停止 httpd 服务, 查看当前内存剩余量
1 2 |
service httpd stop free -m |
used 列标出了目前使用的内存量, 再用 vps 的实际内存量减掉使用量. 就是现在的可用量.
我的 vps 是512M内存, 剩余内存340M.
可用内存的 80% 作为 Apache 平时使用(预留20%作为峰值内存)
340 * 0.8 = 272M
用可用内存 / 单个进程使用最多内存 , 得出的值就是 MaxClients 值, 即 apache 合适的进程数.
272 / 40 ≈ 7
修改配置文件
1 |
vi /etc/httpd/conf/httpd.conf |
找到 MaxClients, 可能有多个. 改为7
找到 MinSpareServers, 改为 MaxClients 的 10-25%, 7 * 0.25 ≈ 2
找到 MaxSpareServers, 改为 MaxClients 的 25-50%, 7 * 0.5 ≈ 4
找到 StartServers, 设置为 MinSpareServers 或 MaxSpareServers 的值
找到 MaxRequestsPerChild, 改为1000, 小于1000的不用改
保存,重启 httpd