今天突发奇想,在AWS上使用Lightsail搭建了一个wordpress,也就是和本站一样的架构。
价格是5刀包月,首月免费。资源是1个CPU,512MB的内存,比我自己在阿里云上搭建的虚拟机少一半的内存。另一个区别是它使用20GB的SSD高速硬盘,而我的阿里云里给的是普通云盘。还有一个区别,AWS貌似没有限制接口带宽,但是有1TB的传输限制;我的阿里云主机没有传输限制,但是有1MB的流量带宽限制。
结果是,在AWS上搭建的Wordpress,用起来跟飞一样!
我能理解,由于是新搭建的网站,因此什么内容还没有,因此没有加载的延迟。也能理解AWS的带宽很大,因此速度很快。还能理解SSD硬盘确实是比普通磁盘快不少。但是这也差太多了吧!
我在自己的Wordpress里执行一个操作要等4-5秒,而AWS的wordpress是秒开!
秒开!我勒个去!我觉得丢人!!
于是我观察了一下AWS给的虚拟机的运行参数,看着内存用量非常揪心 – 只有40多MB的预留。它也是只用了3个php-fpm进程(我以前调优的文章里有介绍过这个),而且使用的是apache默认的httpd server。
感觉没什么不同。wordpress的版本我也一直保持着最新,目前是4.9.5。
突然发现,php的版本不太一样。
我的php版本使用的是5.3.3,而AWS里的php版本足足是7.0.27!
会不会是因为php的性能不一样呢?
上网简单搜索了一下,果然,有很多人在说php7.x要比5.x快好几倍。
别想了,来升级。
在网上搜到一篇文章:《PHP 7.0 on CentOS/RHEL 6.9 and 7.4 via Yum》
话说我的机器是6.9的(有点不爽),升级Kernel太麻烦,于是一直保持着6.9这个版本。说不定哪天忍不了了,就直接升7.5。
照着步骤一步一步执行升级。
我这里刷了个小聪明,文章里提到的php只到7.0,由于我知道php有7.1了,于是把其中的70的字样全都改成71,实践发现,成功。
有可能有人会问,为什么不升php 7.2……恩,因为Yum库里暂时还没有7.2,我对主机的软件维护都是通过Yum来实现的,所以暂时无法升级到php 7.2。
- yum install epel-release
- rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm //CentOS 6
- yum install php71w php71w-fpm php71w-opcache
在执行到第三步的时候出错了,提示php-common冲突。于是我调整了一下文章里步骤的顺序:
- yum install epel-release
- rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm //CentOS 6
- yum install yum-plugin-replace
- yum replace php-common –replace-with=php71w-common
- yum install php71w php71w-fpm php71w-opcache
其实在执行第四步的饿时候,出现了stack-trace,我稍微看了一眼,貌似和php-common无关,于是就忽略了。因为最后一条命令是把这些都加回来。
最后还有重启nginx和php-fpm。
- service nginx restart
- service php-fpm restart
完成后赶紧重新浏览我的博客,发现无缝替换,并且开始“跑”了。
距离飞还是有差距的,但是4-5秒的延迟,现在能降到2-3秒了。
看来优化的路还得继续走,不过一下降低了延迟2-3秒,真心觉得开心。
