Можно ли получить ответ <200 мс с Drupal (без кэширования)? - PullRequest
5 голосов
/ 03 января 2011

Вопрос, проще говоря, в названии.Возможно ли это?

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

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

Drupal может занять до 3 секунд (или больше!) Для рендеринганекоторые веб-страницы (время выполнения PHP, а не БД).Это безумие.Совершенно сумасшедший.

Если многие проекты (например, Facebook) используют PHP, очевидно, проблема в моем.Но поиск этой проблемы показывает, что это обычное дело.Слишком часто.

(Конечно, я установил APC для PHP. Это, безусловно, помогает, но PHP все еще очень медленный).

Должен ли я считать, что это реальность для Drupal / PHP?

Спасибо.

Ответы [ 4 ]

4 голосов
/ 04 января 2011

Короткий ответ - нет.Но почему вы не хотите кэшировать?

Что вы подразумеваете под «генерировать новую страницу в реальном времени»?Аутентифицированные пользователи (все, кто вошел в систему) могут сразу увидеть новый контент.Анонимным пользователям, возможно, придется немного подождать (например, если вы используете Boost), НО, вы всегда можете контролировать его или сбрасывать при добавлении нового контента.Вы должны кэшировать столько, сколько можете.

Вы можете установить Boost (статические файлы HTML), Memcache и включить кеш Drupal.Это поощряется, особенно последний.Вы также можете запустить nginx на сервере.

Вы также можете попробовать использовать Pressflow, замену Drupal, которая даст вам лучшую производительность.

http://pressflow.org/

Это обсуждалось много раз. Вы можете сделать Drupal очень быстрым, если хотите.Ознакомьтесь с некоторыми статьями из 2bit:

http://2bits.com/contents/articles

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

2 голосов
/ 04 января 2011

Как вы говорите, Facebook использует PHP, и у них явно есть причина для хорошей производительности. Их решением было написать собственный компилятор для PHP под названием HipHop , который они выпустили как открытый исходный код. Если вы беспокоитесь о производительности PHP, попробуйте, так как это определенно улучшит ситуацию.

Недостатком является то, что он (пока) не покрывает 100% набора функций PHP, поэтому некоторые программы PHP могут не компилироваться. Я не знаю, где Drupal вписывается в это, но стоило бы попробовать это - ничего нельзя потерять, выполняя тестовую компиляцию; если это не сработает, вы ничего не потеряете.

Аналогичным образом, в сообществе Drupal существует проект по преобразованию частей ядра Drupal в расширение PHP, что означает, что некоторые ключевые функции Drupal затем встраиваются в среду выполнения PHP как скомпилированный код. Смотрите страницу проекта здесь . Но обратите внимание, что это все еще находится на довольно ранней стадии разработки: он все еще указан как экспериментальный и охватывает лишь небольшое количество функций. Хотя, возможно, стоит присмотреть за проектом.

0 голосов
/ 21 марта 2011

Советы, которые я получил от некоторых друзей относительно производительности загрузки Drupal, - установить менее 40 модулей.

Более 40, особенно если эти модули contrib используют слишком много хуков и памяти, и производительность будет снижена.

Другие советы:

  • удалить imagecache ui и views ui на производственной площадке
  • если возможно, установите htaccess на vhost.conf, чтобы htaccess вызывался только один раз при запуске apahe
  • использовать дроссельный модуль
  • использовать gzip для всех файлов html, css и js
  • использовать модуль cdn и серверное решение amazon
  • используйте ajax для некоторых частей или блоков вашего сайта
  • последний и, если достаточно бюджета, перейдите на оракул
0 голосов
/ 05 января 2011

Согласно http://groups.drupal.org/node/34076, да, вы можете получить время отклика <200 мс с Drupal без кэширования. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...