简述
在刚刚配置完服务器之后,想着试一试wordpress这个功能,结果打开服务器后台,发现本来就不多的内存被占用了一大半。
我真的服了,我还啥都没干呢,就这么多的内存占用,那之后我开始弄了还得了。因此有必要做下优化。
优化
- 先通过top看下信息(
shift + m
会让进程按照memory排序)- 发现里面有大量php-fpm进程,经过查找资料发现,
php-fpm 的 FastCGI 进程一旦加载就不会释放
。因此有必要先针对这个做一个优化。
- 发现里面有大量php-fpm进程,经过查找资料发现,
top - 04:48:11 up 2 days, 20:53, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 104 total, 1 running, 103 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 997.1 total, 131.4 free, 717.9 used, 147.8 buff/cache
MiB Swap: 521.0 total, 463.0 free, 58.0 used. 137.1 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21342 mysql 20 0 1778188 395324 11060 S 0.0 38.7 5:04.74 mysqld
28108 nginx 20 0 355152 42240 13016 S 0.0 4.1 4:24.63 php-fpm
29179 nginx 20 0 350732 40652 13852 S 0.0 4.0 2:13.90 php-fpm
28085 nginx 20 0 350772 39772 12972 S 0.0 3.9 4:25.10 php-fpm
28153 nginx 20 0 350788 38424 13120 S 0.0 3.8 4:22.82 php-fpm
28087 nginx 20 0 348732 37584 12948 S 0.0 3.7 4:22.89 php-fpm
28086 nginx 20 0 347836 36428 12972 S 0.0 3.6 4:24.11 php-fpm
29777 nginx 20 0 275916 36020 10220 S 0.0 3.5 0:07.34 php-fpm
28084 nginx 20 0 345644 33984 13000 S 0.0 3.3 4:24.00 php-fpm
29426 nginx 20 0 344328 33600 13424 S 0.0 3.3 0:58.41 php-fpm
11892 root 20 0 356208 28112 6888 S 0.0 2.8 0:05.50 firewalld
28088 nginx 20 0 334540 23416 13020 S 0.0 2.3 4:24.00 php-fpm
28082 root 20 0 237752 11416 9396 S 0.0 1.1 0:01.43 php-fpm
php-fpm优化
- 修改php-fpm文件,一般的地址是
/etc/php-fpm.d/www.conf
vi /etc/php-fpm.d/www.conf
- 修改下面这几个参数,找一下就行(
参考文末链接1的内容,结果参数含义如下
)- pm:表示使用那种方式,有两个值可以选择,就是static(静态)或者dynamic(动态),默认为dynamic。
- pm.max_children:静态方式下开启的php-fpm进程数量。
- pm.start_servers:动态方式下的起始php-fpm进程数量。
- pm.min_spare_servers:动态方式下的最小php-fpm进程数量。
- pm.max_spare_servers:动态方式下的最大php-fpm进程数量。
pm = dynamic
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 10pm.max_requests = 300
- 保存,之后,重启php-fpm服务
systemctl restart php-fpm
-
重启之后发现资源释放了很多
-
但是这种优化过一段时间就会变成700MB。不过总体还是有改进了
删除没用的主题
网上还有人说,需要删除没用的主题,但是经过测试没有用。
不过这么一堆东西在也确实烦人。
删除的方法是就是进入到wordpress的themes目录
比如我的是/usr/share/nginx/html/wordpress/wp-content/themes
cd /usr/share/nginx/html/wordpress/wp-content/themes
- 然后把theme的文件夹删除就好了, 通过
rm
mysql优化
超乎寻常的有!!! 但是降低一点打开的速度,一般可以降低50%的内存消耗
- 编辑 my.cnf文件
vi my.cnf
- 在文末添加下面这一段 (如果你这个文件中已经有了
[mysqld]
[mysqld]
performance_schema = 0
- 重启mysqld服务
systemctl restart mysqld
- 反正在我试过之后,内存消耗就没有超过600MB了 简直绝了,至于性能损失,完全可以用更简单的主题,或者是用插件做下优化;总体来说绝对是划算的,毕竟
1cpu 1GB
服务器这么便宜,这一切绝对是值得的。
参考链接
- https://blog.csdn.net/Peigenzi/article/details/73506298
- https://blog.csdn.net/renfufei/article/details/105851728
- https://stackoverflow.com/questions/45516971/why-is-mysql-consuming-so-much-memory