由于业务上的缘故,接触阿里云及其竞品也有一年多了。
眼看着“云计算”从概念炒作到实际“云服务器”可用,逐渐被众人所接受。
随着其价格也在不断亲民化,我们终于可以和万恶的“虚拟主机”说再见了。
身为从业人员,十分了解云服务器的便利,
自然很早便萌生了将站点从“虚拟主机”迁移至“云服务器”的念头。
但瓷器国是有着“备案”的光荣政策的,
更换服务器便意味着需要官老爷们的细细审核。
在此期间,自然是必须宕机沐浴斋戒,静静候着的。
这种恶心人的事情,当初不得已经受过一桩。
可不想再次自取其辱,这事便一直拖了下来。
这负面情绪的天平的另一头,
则是我不断积攒着对“虚拟主机”的不满。
直到这天,“虚拟主机”的客服再次告诉我“服务器的配置无法修改”,
而我的要求不过是希望解决一个常见的 Nginx AJAX 405 问题。
我无奈地关闭了当前售后问题窗口,看着页面上历年来长长的售后问题列表发呆。
That’s it,我受够了。
新开页面,阿里云,选择配置,下单购买,开始备案……
嗯,宕机近半个月后,站点终于回来了。
因为这次要改备案接入商,审核时间特别久。
此前没什么 Nginx + WordPress 的经验,调试便又去了大半天。
尘埃落定,回想一下,从 09 年开始,
竟然已经在华夏名网的“虚拟主机”上呆了 6 年之久。
而这台“虚拟主机”到明年五月才到期,算起来基本上要“浪费”半年呢。
呵呵。
上的是入门级的 ECS,单核 CPU 加 1G 内存,CentOS 7 x64。
发现跑 WordPress 一小会儿,MySQL 就要崩,烦躁。
top
命令一看,没开 MySQL 内存就就已经占了 80%,开了基本就满载。
再一查 MySQL 的错误记录,果然显示:
InnoDB: mmap(137363456 bytes) failed; errno 12
原来从 MySQL 5.5 开始,InnoDB 引擎的默认缓存大小从 8M 提升到了 128M,难怪。
在 /etc/my.cnf
中修改/增加:
innodb_buffer_pool_size = 32M
然后重启之:
service mysqld restart
top
之后按 M
占用内存排序后继续排查。
发现是一溜的 PHP-FPM,排前面的都差不多各占了 3-4% 的内存,囧rz
因为是用的“阿里云linux一键安装web环境”,
就需要到 /alidata/server/php/etc/php-fpm.conf
进行设置。
pm = static pm.max_children = 5 pm.max_requests = 1000
根据服务器空载和满载情况进行简单计算和调试,然后重启。
service php-fpm restart
top
仅观察 PHP-FPM 情况,基本稳定满载无报错。
top -p $(pgrep php-fpm | head -20 | tr "\\n" "," | sed 's/,$//')
【相关资料】
1、Limit the output of the TOP command to a specific process name◃stackoverflow
2、ECS Nginx+php中php-fpm参数配置◃aliyun