newrelic 是一个为开发者以及测试人员准备的程序性能测试网站,它能将程序的运行情况以图形化的方式展现,并且提供全方位的性能分析。虽然功能强大,但 newrelic 安装上并不复杂,几分钟之内就可以上手使用。更为重要的是,免费帐号对于大多数个人站长完全够用,不用担心产生额外的开销。下面就已 reizhi 自己的博客为例,简单介绍使用 newrelic 对 wordpress 进行性能优化的流程。
首先当然需要注册帐号,各位前往官网注册即可。注册之后我们添加一个 APM 项目,即 Application Performance Monitor。对于 wordpress 而言,选择 php 就好了。除了 php 之外,newrelic 还支持 Ruby , Java , python 等多种程序。
第二步点击他来获取密钥,这个后面会用到。
然后我们需要在终端执行一些命令,根据操作系统的不同,命令也不太一样,下面的例子适用于 Debian, Ubuntu
安装过程中会提示你将配置文件复制到 php.ini 中,通常而言示例文件会在”/usr/lib/newrelic-php5/scripts/newrelic.ini.template”,这里我们直接添加以下内容到 php.ini 中
需要注意的是, newrelic.so 的扩展文件位于”/usr/lib/newrelic-php5/agent/”下的 x64 或 x86 文件夹,请按需复制到 php 扩展文件夹或者直接使用绝对路径加载。
保存之后重新启动 php-fpm ,安装就算完成了。不出意外的话,5分钟内你的 APM 监控项目就会出现在网站控制台。
其中 Web transaction time 指的是网站在不同时间点的响应时间,如图可以看到,wordpress 的大部分服务器端处理时间花在了 php 上,数据库查询只占很小的一部分。而右上角的 APP server 指的是平均服务器处理时间,Browser 则是访客平均加载时间。
Transactions 部分展示的是指定时间段内处理时间最长的请求。
切换到左侧的 Transactions 选项卡后,我们可以看到 /single 页面耗时非常的高,也就是文章显示页面。点击后在右下角我们可以看到处理时间较长的跟踪记录。
我们任意点击一条记录后弹出详细的跟踪记录。在 reizhi 自己的博客上,部分页面的处理时间总是超过2秒,这一直让我很疑惑。无论是使用高级缓存还是数据库缓存都没能解决问题,而在使用 newrelic 后,我们可以很清楚的看到,simple-lightbox 这个插件的处理时间被标红。在禁用插件之后,问题解决,所有页面的处理时间均稳定在0.2秒左右。
newrelic 对于 wordpress 还提供了扩展以及跟踪功能,可以查看各个扩展或主题的调用耗时,以便于性能优化。