在提供文档、CSS、图像之前,Apache Web 服务器响应缓慢

在提供文档、CSS、图像之前,Apache Web 服务器响应缓慢

我有一个运行 WordPress(PHP 和 MySQL)的网站。该网站响应请求非常慢。

当我查看 Safari 中的网页检查器时,问题似乎不是文件大小。

http://img.skitch.com/20100127-1yjnf586wdr3tx4akk8fj5qwhx.png

需要 5 秒钟才能提供内容。我可以采取什么措施?我是服务器管理新手,这只是一个共享服务器。我没有完全控制权,但可能值得尝试优化。

我尝试了traceroute命令ping,但命令运行没有问题。

答案1

您确实需要拥有管理员权限才能在服务器上执行任何类型的实际故障排除。

但是,如果你想弄清楚这是你的代码还是服务器的错误(呵呵),您可以采取一些步骤。其中之一是向您的 php 代码添加一个计时器,以查看它在服务器上执行需要多长时间。从这里

<!-- put this at the top of the page --> 

<?php 
  $mtime = microtime(); 
  $mtime = explode(' ', $mtime); 
  $mtime = $mtime[1] + $mtime[0]; 
  $starttime = $mtime; 
?> 

<!-- put other code and html in here --> 

<!-- put this code at the bottom of the page --> 
<?php 
  $mtime = microtime(); 
  $mtime = explode(" ", $mtime); 
  $mtime = $mtime[1] + $mtime[0]; 
  $endtime = $mtime; 
  $totaltime = ($endtime - $starttime); 
  echo 'This page was created in ' .$totaltime. ' seconds.'; 
?>

通过这个,你可以知道服务器是否真的很慢,或者是否在连接端。

如果服务器速度很慢,可以采取一些措施,但您需要管理员权限才能继续操作,特别是因为您使用的是遍布全球数十万台服务器且经过相当优化的 wordpress。

还有一件事要尝试,那就是禁用插件,然后逐个启用它们,看看是否有任何插件导致了速度缓慢。

答案2

这可能与文件大小无关。如果您正在运行 wordpress,您的积压工作将是数据库和处理器。数据库用于恢复有关页面应有的样子、内容等的所有信息。处理器用于将所有这些东西编译成实际文档并将其发送出去。

可能需要调整 Apache 的缓存设置。如果某些页面经常被请求,那么一遍又一遍地构建它们就毫无意义了。

答案3

尝试使用 Firefox 并安装一个名为 Firebug 的插件(http://getfirebug.com/)。设置完成后,启用“网络”面板并重新加载页面。这将显示服务器响应每个部分所需的时间,包括初始连接速度、下载时间、服务器响应延迟等。您还可以使用此面板查看是否正在缓存 JavaScript、图像和 CSS 等项目。

由于您使用的是共享主机,因此您对服务器设置的控制权将非常少,但您可以通过密切关注您要求该服务器执行的操作来以其他方式加快速度。

GL!习惯使用 Firebug 吧,它可是救星。

最后一件事,确保您使用的是最新版本的 wordpress,并且不要使用太多插件。每一点开销都会减慢您的负载。

答案4

Wordpress 与许多 CMS 一样,是出了名的负担很重,我并不惊讶共享服务器在提供第一个字节时会出现这样的延迟。

首先要确保你有一个可用的操作码缓存(php-apc 是“标准”的缓存),如果没有这个缓存,Wordpress 每次有新用户请求时都会生成主页。如果服务器上安装了 apc,并且你有办法配置它,你可以先尝试这个配置:

apc.enabled=1
apc.shm_size=64
apc.max_file_size=3M
apc.ttl=7200
apc.user_ttl=7200
apc.stat_ctime=1

然后查看包中包含的 apc.php 脚本提供的统计数据,它将帮助您设置这些价值观更充分。

我要做的第二件事是使用 Wordpress 的缓存插件,如下所示:http://wordpress.org/extend/plugins/w3-total-cache/

它将在第一次请求时呈现内容,然后在每次可能时提供静态内容。

相关内容