У меня есть веб-сайт, на котором работает WordPress (PHP и MySQL). Сайт очень медленно отвечает на запросы.
Когда я заглядываю в веб-инспектор в Safari, проблема не в размерах файлов.
http://img.skitch.com/20100127-1yjnf586wdr3tx4akk8fj5qwhx.png
Перед подачей содержимого требуется 5 секунд. Какие меры я могу предпринять? Я новичок в администрировании серверов, и это просто общий сервер. У меня нет полного контроля, но, возможно, стоит попробовать оптимизировать.
Я попытался traceroute
и ping
команды, но команды работают без проблем.
Вероятно, это не связано с размерами файлов. Если вы используете wordpress, ваши невыполненные задания будут связаны с базой данных и обработчиком. База данных для восстановления всей информации о том, как должна выглядеть страница, ее содержимое и т.д. И процессор для компиляции всего этого материала в настоящий документ и его отправки.
Возможно, вы захотите посмотреть на настройку настроек кеша Apache. Если определенные страницы запрашиваются часто, нет смысла строить их снова и снова.
Вам действительно нужны права администратора, чтобы выполнять любые реальные действия по устранению неполадок на сервере.
Однако, если вы хотите выяснить, виноват ли это ваш код или сервер (хе), вы можете предпринять несколько шагов. Один из них - добавить таймер в ваш 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, который находится на сотнях тысяч серверов по всему миру и достаточно оптимизирован.
Еще одна вещь, которую нужно попробовать, - отключить плагины и включить их один за другим, чтобы увидеть, не вызывают ли они вашу медлительность.
Попробуйте использовать Firefox и установите для него плагин Firebug (http://getfirebug.com/). После того, как вы его настроите, включите панель «net» и перезагрузите страницы. Это покажет вам количество времени, которое требуется для каждой части ответа сервера, включая начальную скорость соединения, время загрузки, задержку ответа сервера и т. Д. Также вы можете использовать эту панель, чтобы узнать, кешируете ли вы такие элементы, как JavaScript, изображения , и CSS.
Поскольку вы находитесь на виртуальном хостинге, у вас будет ОЧЕНЬ мало контроля над настройкой вашего сервера, но вы можете ускорить процесс другими способами, уделяя пристальное внимание тому, что вы просите этот сервер делать.
GL! И привыкайте к использованию Firebug, это палочка-выручалочка.
И последнее: убедитесь, что вы используете самую последнюю версию wordpress, какую можете, и не используйте слишком много плагинов. Каждый бит накладных расходов замедлит вашу нагрузку.
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/
Он будет отображать контент по первому запросу, а затем предоставлять статический контент каждый раз, когда это возможно.