
У меня есть сайт, работающий на 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/). После настройки включите панель «net» и перезагрузите страницы. Это покажет вам количество времени, необходимое для каждой части ответа сервера, включая начальные скорости соединения, время загрузки, задержку ответа сервера и т. д. Также вы можете использовать эту панель, чтобы увидеть, кэшируете ли вы такие элементы, как 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/
Он отобразит контент по первому запросу, а затем будет показывать статический контент каждый раз, когда это возможно.