最近发现博客访问速度下降很厉害(打开博客首页需要近4秒的时间),决定优化一下(只优化异常慢的问题,不做细致优化,不以访问很快为目标,能正常在秒级以下即可)。
先回顾了下前段时间对博客的主要改动,主要有:
- 更新了博客的展示形式和内容。
- 将数据库从与博客同服务器迁移到了从阿里云新买的专门的数据库服务上。
- 使用博客所在服务器作为开发机进行远程开发,vscode和idea都试了(有点卡,遂放弃),感觉idea在原生服务上装的东西估计会比较大。
目录
一、硬盘空间方面的优化
感觉是远程开发时在服务器上装软件占用硬盘或者软件资深占用运存过多导致的,或者是迁移数据库造成的,但是同时也会觉得阿里云数据库应该不至于这么慢,不然也太拉胯了。今天看了下宝塔面板,发现硬盘空间已经不多了,猜测最近博客访问慢可能主要是由此导致的(并不是)。于是我们先尝试清理下服务器(CentOS7)上的硬盘空间。
1、卸载用不到的软件
1、卸载了该服务器中用不到的redis(直接在宝塔软件商店里卸载即可)。
2、卸载了不需要的node版本。由于我使用了nvm进行node多版本管理。首先执行nvm ls查看当前已安装的node版本列表,然后对不需要的node版本分别执行nvm uninstall [不需要的node版本]即可。操作完毕后cd ~/.nvm/versions/node/后ls确认只剩下了我们需要的node版本。
以上两步操作后,大概节省了500MB的空间。访问网站,速度没有提升,还是慢。
2、删除无用的缓存和备份文件
从网上搜了下罗列当前目录下比较大(大小自定)的文件清单的命令(find . -type f -size +1024k -exec ls -lh {} \;),目之所及,看到了一些需要整理的目录,比如:
- /root/.nvm/.cache/bin,里面有很多用不到的node版本。
- /blablabla/wp-content/updraft,里面有很多博客的备份文件。
清理后,又节省出了15G的空间(硬盘空间的使用率降到了65%)。已经足够使用了。但是经过试验,博客访问速度还是很慢。
其实还有很多node_modules目录可以删除,不过硬盘空间已经不是瓶颈问题了,先忽略。
二、WordPress相关的优化
禁用了用不到的WooCommerce插件,首页减少了20多次的sql请求,网页访问速度提高了大约0.5秒?。
三、数据库相关的优化
由于博客所在服务器是腾讯云的,数据库是阿里云的,无法内网通讯,只能走外网。介于网站程序的sql请求书比较多,还真的有可能是因为数据库访问速度导致的(我们不去优化wordpress及当前正在使用的主题对sql的编写和使用,因为php不是我擅长的东西,做这个优化对我来说耗时多收益小)。
另一方面,由于国内网站都是要备案的,备案表面上是对域名进行备案,实际是对服务器的备案(因为内容存放于服务器上),要想把博客换到阿里云服务器上,应该会需要重新备案。也比较麻烦。
最方便的方法还是重新做下数据库的导入导出,然后用本机数据库。使用DataGrip的Copy Table To…功能可以很方便地在两个库之间进行表结构和数据的复制(复制时,一些由弃用的WordPress插件生成的table就不用复制了)。
至此,本文的优化目的已经达成,首页的访问时间由最初的4秒降低到了0.7秒。属于“正常的”慢了。