【服务器管理】Wordpress服务器内存占用太高(优化方案详解)

简述

在刚刚配置完服务器之后,想着试一试wordpress这个功能,结果打开服务器后台,发现本来就不多的内存被占用了一大半。

在这里插入图片描述

我真的服了,我还啥都没干呢,就这么多的内存占用,那之后我开始弄了还得了。因此有必要做下优化。

优化

  • 先通过top看下信息(shift + m 会让进程按照memory排序)
    • 发现里面有大量php-fpm进程,经过查找资料发现,php-fpm 的 FastCGI 进程一旦加载就不会释放 。因此有必要先针对这个做一个优化。
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 Mem

  PID 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 = 10

pm.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服务器这么便宜,这一切绝对是值得的。

参考链接

  1. https://blog.csdn.net/Peigenzi/article/details/73506298
  2. https://blog.csdn.net/renfufei/article/details/105851728
  3. https://stackoverflow.com/questions/45516971/why-is-mysql-consuming-so-much-memory

猜你喜欢

转载自blog.csdn.net/a19990412/article/details/129427607