精打细算修改配置节省阿里云服务器的内存使用方法
优质
小牛编辑
151浏览
2023-12-01
检查内存空间占用
首先我们来检查一下自己的阿里云机器都是哪些进程占用了资源,执行
[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看看你内存节省了多少
妈妈再也不用担心我的内存啦!