精打细算修改配置节省阿里云服务器的内存使用方法

请尊重原创,转载请注明来源网站www.lcsays.com以及原始链接地址

检查内存空间占用

首先我们来检查一下自己的阿里云机器都是哪些进程占用了资源,执行

[root@MYAY ~]# ps aux|grep -v USER|sort -n -k 6

这是按照实际内存占用从小到大排序,那么排在最后几位的就是我们的内存占用大户了

……
apache   17496  0.1  3.6 365692 37568 ?        S    07:51   0:01 php-fpm: pool www
apache   17498  0.1  3.9 368016 39916 ?        S    07:51   0:01 php-fpm: pool www
apache   17497  0.2  5.4 384920 55876 ?        S    07:51   0:02 php-fpm: pool www
mysql    17240  0.0 12.1 831064 123468 ?       Sl   07:43   0:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock

mysql没办法,为了性能更高内存还是不要动

注意这里的php-fpm,这是php-fpm启动的诸多个子进程,启动子进程的目的是为了提高并发响应速度,我这里只列出了后三个,其实有好多个,几乎占用了我磁盘空间的一半,如果你的网站流量小于1000每天,那么完全没有必要启动这么多子进程空闲着

优化方案

下面就是优化方法了,见证奇迹的时刻到了,打开/etc/php-fpm.d/www.conf,找到这些配置项:

pm = dynamic
pm.max_children = 50
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 8

你的应该不是这样的配置,这是我优化过的,简单说明一下:

pm有dynamic和static两种取值:static就是配死子进程起多少个,这时pm.max_children有效,下面三个配置无效;dynamic就是动态启动子进程,这时pm.max_children无效,下面三个配置有效

如果你是土豪,那么请用static,我什么也不说了,如果你不是土豪,请乖乖用dynamic

pm.start_servers是指php-fpm一启动给分配几个子进程,我们设置小点,比如3

pm.min_spare_servers是指最少要留几个空闲的php-fpm做备份等待,我们设置小点,比如2

pm.max_spare_servers是指最多要留几个空闲的php-fpm做备份等待,我们设置小点,比如8

ok,重启php-fpm看看你内存节省了多少

妈妈再也不用担心我的内存啦!