MySQL 内存优化

早上醒来,发现博客打不开了,提示无法连接数据库。通过终端登录,尝试连接 MySQL(Centos 7 一般用的是 MariaDB),果然无法连接,只得重启服务器来暂时解决。当时具体的报错信息已经忘了,只记得大概讲的是 MySQL 停止运行,又被锁定之类的。考虑到我的这台博客服务器内存较低,问题应该就出在 MySQL 的内存占用方面。果然,网上也有关于这方面的讨论。说是当服务器的内存过低,容易造成 MySQL 的运行经常性停止,其本质原因就在于不合理的缓存策略。那么,不妨就先从这方面入手去解决吧。

阅读余文MySQL 内存优化

php-fpm 内存调优

为了高效利用服务器,今天特地把博客迁移到一台只有 1G 内存的新服务器上。原想一个静态博客而已,耗不了多大机器性能。不曾想,1G 的内存很快就不够用了,看了一下,连 swap 都被用上了。于是赶紧用命令查下各进程的内存开销:

$ ps aux

发现占据一大半内存的是一堆 php-fpm 相关的子进程。看来是 php-fpm 的配置不合理,导致它们被不合理地创建出来。这就要分析 php-fpm 创建子进程的方式了。

php-fpm 有三种孵化子进程的方式,一般可在 /etc/php-fpm.d/www.conf 里面,通过指定 pm 的值(例如,pm = dynamic),结合对应的参数(例如,pm.max_children = 50)来配置。这三种孵化方式分别是:

  • 静态 static
  • 动态 dynamic
  • 按需 ondemand

下面就分别来讨论这三种方式。

阅读余文php-fpm 内存调优