vps内存占用调整

使用free -m查看内存,计算加上缓存,空余内存也只有几十兆了,怎么会这样呢?

查看一下前20为占用内存的进程,基本都是apache的进程
ps aux|sort -nrk 4|head -n 10
apache 4760 0.7 4.6 41476 24464 ? S 21:57 0:05 /usr/sbin/httpd
apache 4758 0.4 4.5 40744 23980 ? S 21:57 0:03 /usr/sbin/httpd
apache 4757 0.5 4.4 41168 23396 ? S 21:57 0:04 /usr/sbin/httpd
apache 4759 0.4 4.3 40700 23052 ? S 21:57 0:03 /usr/sbin/httpd
apache 4756 0.4 4.3 40712 22976 ? S 21:57 0:03 /usr/sbin/httpd
root 931 0.0 4.2 22540 22532 ? S root 1720 0.0 1.6 24120 8720 ? Ss May23 0:00 /usr/sbin/httpd

使用TOP命令,然后按shift+m后,进程按照内存使用倒排序,和上面的情况基本一致,每个apache占用25M左右的内存,看来是apache开启的进程太多了。(shift+P 按当前CPU占用率倒排序,shift+t 按CPU累计运行时间倒排序)

查看apache的配置文件,原来最大空闲进程数为20,这对仅512M的vps来说太多了,进程数的相关设置调整如下:
StartServers 5
MinSpareServers 3
MaxSpareServers 8
ServerLimit 20
MaxClients 20
MaxRequestsPerChild 1000

重新启动apache
apachectl restart

调整完毕后vps只使用了160M左右内容,基本正常了。
[adam@myvps ~]$ free -m
total used free shared buffers cached
Mem: 512 235 276 0 4 66
-/+ buffers/cache: 164 347
Swap: 255 39 216

Comments are closed.