Чрезмерное время ожидания в шаблоне основного блока Mage::Fetchview на /cms/индекс/индекс


Я расследую, почему время ожидания нашей домашней страницы так медленно (4,8 с). Используя NewRelic, я обнаружил, что вызов Mage_Core_Block_Template::fetchView использует чрезмерное время в 2800 мс. Я не понимаю, почему ему требуется так много времени для получения представлений, пока кэш блоков активен, и что сервер Redis позади работает.

Я использую PHP 5.5 с PHP-FPM, Nginx, Redis и Percona MySQL 5.6.

Есть у кого-нибудь какие-нибудь подсказки о том, как отладить это странное поведение? Это единственная страница, на которой это делается, все для рендеринга остальных требуется менее 1,5 секунд.

Author: Marius, 2014-04-17

1 answers

public function fetchView($fileName) извлекает каждый файл .phtml для вашей домашней страницы и включает его.

Можете ли вы использовать NewRelic? Или, если нет, включите профилировщик Varien или используйте свои собственные таймеры и ведение журнала для измерения времени, затраченного на просмотр каждого файла $. ($filename будет файлом шаблона блока, например left.phtml)

Это должно указывать, какой файл шаблона блока занимает так много времени для визуализации. Затем вы можете прочитать файл .phtml или добавить таймеры и войти в файл .phtml, и он связан с .php файл класса, чтобы сузить круг проблем.

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

В качестве плана Б вы можете просто начать удалять блоки со своей домашней страницы с помощью вашей темы local.xml регистрируйте и следите за улучшением скорости.

 3
Author: Malachy, 2014-04-18 08:33:09