Apache отстает или что-то еще плохо - PullRequest
0 голосов
/ 21 июля 2010

У меня есть сайт. Это мой первый сайт с Zend Framework, но я думаю, что он написан хорошо. Время генерации составляет около 0,9 с. Я сделаю что-то вроде 0.2, но оставлю это сейчас. Когда вы нажимаете любую ссылку на веб-сайте, она загружается примерно за 1,5-2 секунды до того, как веб-браузер загружает страницу. Затем он показывает 0,15 с, чтобы показать это. Так что, если время выполнения 0,9, где остальные 1,1? Пинг составляет около 13 мс. Адрес сайта http://zgarnijlicke.pl

Редактировать:
Странный. Второй домен, http://lottek.eu, работает хорошо. Посмотрите на http://lottek.eu/picostreamer. Он не отстает от домена zgarnijlicke.pl.

Редактировать 2:

Проблема с Zend-Framework. Я установил действие без представления рендеринга (макет также отключен), и он работает так быстро, как сервер может это сделать. Я задам новый вопрос.

Ответы [ 4 ]

0 голосов
/ 22 июля 2010

Я нашел это.Это проблема с ZF, потому что когда я делал страницу hello.php с таким кодом:

hello world

Без какого-либо сценария <? Php?> Для завершения потребовалось 0,4 с.

0 голосов
/ 21 июля 2010

При быстром тестировании с помощью wget общее время выполнения для переноса одной из страниц составляет 1,5 с, а фактическое время загрузки составляет 0,2 с, то есть накладные расходы составляют 1,3 с. Пауза возникает перед началом передачи, так что это проблема на стороне сервера.

Это сайт на виртуальном сервере? Вполне возможно, что если основной физический сервер сильно загружен, ваше изображение может быть выгружено или иным образом загружено ЦП и потребуется ~ 1 секунда, чтобы снова стать отзывчивым.

Возможно, это вопрос внутреннего ресурса - вы подключаетесь к БД, особенно к удаленной? Даже если некоторые или большинство страниц не управляются БД, это может привести к дополнительным расходам на подключение к БД. А затем снова переключается / откладывается, так как для поддержания активного изображения не требуется никаких дополнительных действий.

Это может быть даже глупо, если Apache настроен с включенным параметром IdentityCheck , хотя и маловероятно, так как это замедлит все запросы. Я не вижу какого-либо замедления запросов файлов .css / .js с вашего сервера при просмотре из HTTPFox. Интересно, что запрос .css / .js через wget возвращает «500 Internal Server Error».

0 голосов
/ 21 июля 2010

Вот отчет webpagetest.org для вашего сайта: http://www.webpagetest.org/result/100721_1P0Y/

Если вы просмотрите график водопада для первого просмотра, вы увидите, что браузер получает исходный HTML-код с отметкой около 1,2 секунды и вначале может отобразить вашу страницу через 4 секунды. Что происходит между этими двумя, так это загрузка ваших трех файлов javascript и двух файлов CSS. Итак, это то, с чего вы хотите начать. Некоторые предложения:

  • Подумайте об использовании бесплатного CDN для jquery.js вместо того, чтобы обслуживать его с вашего сервера, например. Google's: http://code.google.com/apis/ajaxlibs/. Таким образом, пользователи, скорее всего, уже кэшируют его, Google будет обслуживать его из географически ближе к пользователю местоположения и (я думаю) в сжатом формате.

  • Для jquery.corner.js и jquery.media.js рассмотрите возможность объединения их в один файл и их сжатия (модуль Apache mod_deflate делает это очень простым)

  • То же самое для ваших файлов CSS - рассмотрите возможность объединения их в один файл и предоставления их сжатым.

Это даст вам несколько быстрых побед. Однако есть и другие вещи, которые вы можете улучшить:

  • Добавьте атрибуты ширины и высоты к тегам изображения. Без них некоторые браузеры будут останавливать рендеринг, пока загружают изображения, чтобы они знали, сколько места они займут. Ни один из ваших тегов изображений не имеет этих атрибутов.

  • Убедитесь, что вы используете правильный формат изображения для работы. Ваше изображение banner.png превышает 300 КБ, что слишком много. Я преобразовал это в изображение JPEG (качество 80%), и это было 30 КБ.

Что касается времени выполнения, 0,9 секунды кажется довольно высоким. Вы используете APC или подобное? Страница выполняет какую-нибудь тяжелую работу с базой данных?

0 голосов
/ 21 июля 2010

Попробуйте добавить в ваш php код таймера, который измеряет время, необходимое для генерации содержимого страницы.Таким образом, вы можете подтвердить или исключить проблемы с сервером.

Вы также можете использовать сетевые инструменты, такие как ping и traceroute, чтобы проверить, не связана ли ваша проблема с задержкой в ​​сети.

...