Причины высокой сетевой задержки - PullRequest
1 голос
/ 10 мая 2011

У меня есть сайт, который сейчас движется невероятно медленно. Инспектор Safari и Firebug сообщают, что большая часть времени загрузки связана с задержкой. Фактическая загрузка происходит менее чем за секунду. В игре много работы с базами данных (хотя метрики показывают, что это довольно здорово), но что еще может привести к очень высокой задержке? Это чисто сетевая вещь или есть какие-то изменения, которые я могу внести в приложение, чтобы улучшить задержки?

Я использую YSlow, чтобы помочь определить улучшения производительности, но в целом я не вижу, чтобы он сообщал о чем-то, что кажется безумным и необоснованным. Конечно, есть возможности для улучшения, но ничто из того, что кажется, не приведет к огромному времени загрузки, которое я вижу.

Спасибо.

UPDATE

Некоторый фон и метрики, на случай, если это будет полезно. Это приложение CakePHP, и я использую свое действие UsersController::login в качестве эталона. Для определения того, насколько важен код приложения, я напечатал трассировку стека сразу после ввода UsersController::beforeFilter(). Вот вывод:

UsersController::beforeFilter() - APP/controllers/users_controller.php, line 13
Controller::startupProcess() - CORE/cake/libs/controller/controller.php, line 522
Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 187
Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 171
[main] - APP/webroot/index.php, line 83

Время загрузки, как показывает диапазон инспекторов Safari, от 11,2 секунд до 52,2 секунд . Кажется, это уводит меня от кода приложения и, возможно, чего-то с моим хостом, но, возможно, я полностью неверно истолковываю это или упрощаю?

Ответы [ 2 ]

0 голосов
/ 10 мая 2011

Возможно, это не будет решением для вас, но когда у меня будет собачье медленное сафари (и FF тоже), я просто изменил DNS-серверы на opendns (208.67.222.222, 208.67.220.220), и все мои проблемы будут решены.

0 голосов
/ 10 мая 2011

Если вы не можете напрямую идентифицировать медленный компонент вашего приложения, существует ряд других шагов, которые могут замедлить работу вашего сайта. Всякий раз, когда я испытываю необычно долгий опрос, я обычно начинаю с просмотра локального DNS, а затем - своего размещенного DNS. Иногда обновление кэша (с вашей стороны, а не с вашей) может вызвать много опросов, пока их база данных не будет загружена.

В противном случае у них может возникнуть сбой в обслуживании, и ваши запросы отправляются на их вторичный или резервный сервер. Если все выглядит нормально с точки зрения разрешения домена, ваш хостинг-провайдер может испытывать перебои в обслуживании, которые могут принимать различные формы, такие как подача статического контента из резервных копий или перераспределение общих ресурсов, пока все не будет работать должным образом. Вы можете испытать тонны того, что они называют throttling на архитектурах с общим облаком, когда у них выключен ящик. С другой стороны, у вас нет полного отключения в этих обстоятельствах.

Один раз, и это было только в конфигурации с общей сеткой, у меня был процессор в ад. Странной частью этого было то, что статический контент все еще служил из резервной копии, но он все еще опрашивал нашу базу данных (которая находилась на другом сервере) и приводил к тому, что наша учетная запись throttle из-за перерасхода резервной копии. Не по нашей вине, но хозяин начал рассылать гадкие электронные письма о наших чрезмерных длительных опросах. Мораль этой истории заключается в том, что если это не ваше приложение, и оно совершенно неожиданно, то где-то вдоль линии, держу пари, вы обнаружите какой-то аппаратный сбой или неправильную конфигурацию.

Также теперь, когда я думаю об этом, если вы синдицируете какой-то внешний контент (будь то сервер или браузер), он может вообще не входить в вашу цепочку ответственности. Если вы размещаете объявления, например, из абонентской службы, возможно, у них период высокой нагрузки или сбой. Это всего лишь шаги, которые я предприму, чтобы сузить преступника.

...