Httpwatch分析wordpress运行缓慢问题

原创文章,转载请指明出处并保留原文url地址

前几天发现了wordpress网站变慢问题, 后来经过分析发现是php问题造成相关问题,详情参见 解决nginx下wordpress系统变慢问题一例

原计划考虑编写脚本来自动重新启动php程序,由于时间关系没有实际进行。但是最近几天发现网站速度又变慢了,这次有了上次的经验,因此特定用httpwatch记录了各种数据, 这样可以方便说明问题, 配合前面内容可以了解问题的基本解决过程。

一. httpwatch分析访问时间缓慢情况

如下图,打开ie浏览器,启动浏览器中httpwatch插件, 然后,点击record按钮,打开httpwatch的记录功能, 最后在地址栏中输入网站地址http://www.iigrowing.cn,相关记录如下:

wps_clip_image-15766[5][1]

从上图中,

蓝色区域1中我们可以看到访问中相关http请求的时间占用情况,

绿色区域2 我们可以特别注意到访问网站首页占用时间比较长,大大超过其他时间,因此这个情况下,解决这次访问时间是重点。从前面一个文章的分析中也已经证明这个问题了。

紫色区域3 是本次访问的总时间

为了更准确验证相关问题,我们可以通过httpwatch清楚本地浏览器缓存等各种数据,再次请求服务器进行相关数据的统计等。

wps_clip_image-18356[4][1]

wps_clip_image-5063[5][1]

最后显示结果如下:

wps_clip_image-9596[5][1]

如上图,本次访问时间变成了, 首页访问时间还是最长的。

按照时间方式排列访问时间, 如下图, 点击紫色区域的time标题, 然后显示如下排列方式。

wps_clip_image-12035[5][1]

绿色区域显示访问时间的倒序排列, 访问时间长的排列最前面, 访问时间短的在下面。

蓝色区域用图形化方法表示出访问时间的大小等。

通过本次访问时间的显示我们基本断定必须解决首次php访问的时间了。

二. 编写脚本自动重新启动php程序

1. 切换帐号

输入 su -  命令, 然后输入 root帐号的密码

2. 编写启动脚本

输入 vi  job.restart.php.fpm.sh

然后输入如下脚本:

#!/bin/bash

# 程序启动后将进入 循环状态,直到被退出为止,每次先关闭全部php相关进程, 然后重新启动php进程, 然后sleep 24小时后重新执行这个过程

# 本程序需要采用root帐号启动才有效

# 本程序在运行时需要采用如下方式启动:nohup ./job.restart.php.fpm.sh  >/dev/null 2>&1  &

ps -ef | grep "job.restart.php.fpm" | grep -v grep

#检测脚本是否已经被启动了,若是启动了,则提示后退出

myselfpid=`ps -ef | grep "job.restart.php.fpm" | grep -v grep | wc -l`

echo ${myselfpid}

if [ ${myselfpid} -gt 2  ];then

echo "你已经启动了一个相同任务,当前操作将直接退出"

exit 1

fi

echo "你已经启动了一个定时执行的任务"

#若没有启动过,则进入无限的循环中,每次循环会sleep 24 小时

while [ 1 -le 100 ]; do

echo "关闭全部php进程"

killall php-fpm

echo "启动php进程"

/usr/sbin/php-fpm

echo "间隔24小时后重新启动一次功能"

sleep 86400

done

3. 更改启动权限

chmod a+x ./*.sh

4. 启动脚本

输入如下命令

nohup ./job.restart.php.fpm.sh  >/dev/null 2>&1  &

三. 再次测试网站访问速度

首先通过httpwatch清理本地ie的浏览器缓存等设施, 然后清理访问记录, 最后再次打开网站,记录相关数据如下

wps_clip_image-13608[9][1]

问题已经初步解决, 但是后续优化问题还有,我们将继续进行并持续优化中

发表评论