2014-02-11 2 views
3

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

На моей локальной машине я мог бы исправить это, увеличив настройку realpath_cache_size на php.ini, но на общедоступном хостинге это не сработает (поскольку ограничение open_basedir действует, а php отключает кеш реального пути в этой ситуации).

Теперь я застрял, поскольку обвиняющее приложение не может использоваться с такой огромной задержкой бутстрапа. У кого-нибудь есть эта проблема .. как я могу ее исправить?

+0

это происходит только в первый раз после того, как вы очистить кэш или при каждом запросе? И используете ли вы среду DEV или PROD? –

+0

это по каждому запросу, prod environment –

+0

Первое, что нужно проверить, это файлы журнала DEV env. Я использую Sf2.0.x и Sf2.3.x на общих хостах, и веб-сайты редко принимают 1s для загрузки. Вы выполняете какую-либо тяжелую логику по каждому запросу? –

ответ

3

Есть много способов закрепить буксировку symfony.

Несколько советов:

  • Будьте уверены, что вы используете «Prod» среды (и параметры производства: отладки и профилирования инвалидов, кэш включен, менее многословные журналы),
  • Под высоким КПТ, дон» t использовать обработчик сеансов PHP по умолчанию, он использует блокировку файла в файле сеанса пользователя, который запрещает паррализованные запросы (это может сильно повредить, если вы используете Ajax много),
  • Использование файловой системы может быть довольно медленным для кэширования (особенно на общем хостинге): поместите каталоги кэша под точку монтирования tmpfs или переопределите сервер кэширования, чтобы использовать что-то e lse, чем файловая система (см. http://nerdpress.org/2012/07/10/caching-data-in-symfony2).

Смотрите следующий контрольный список, охватывающий основы Symfony2 приложения deployement для производства: http://www.symfony2-checklist.com/

+0

* Использование файловой системы может быть довольно медленным * Пожалуйста, предоставьте решение или, по крайней мере, предложение. –

+0

Обычно я создаю точку монтирования tmpfs для своих кеш-каталогов, но вы можете переопределить бэкэнд кэширования и использовать, например, memcache. Эта статья покажет вам примеры того, что вы можете сделать: http://nerdpress.org/2012/07/10/caching-data-in-symfony2/ –

+0

Моя проблема действительно open_basedir (см. Https: // bugs .php.net/bug.php? ID = 53263). Это не позволяет кэшировать realpath, я просто не знаю, как это исправить. –

Смежные вопросы