Какой PHP-код-код должен использовать для повышения производительности?

Я пытаюсь повысить производительность при высокой нагрузке и хотел бы реализовать кэширование кода операции. Какое из следующего следует использовать?

Я также открыт для любых других альтернатив, которые проскользнули под моим радаром.

В настоящее время работает на складе Debian Etch с Apache 2 и PHP 5.2

[Обновить 1]

Добавлены ссылки установки HowtoForge

[Обновить 2]

На основании полученных ответов и отзывов я проверил все 3 реализации, используя следующий план тестирования Apache JMeter в своем приложении:

  • Войти
  • Домашняя страница доступа

С 50 одновременными соединениями результаты следующие:

Нет кеширования опкода
No Opcode Caching

APC
APC

Eaccelerator
eAccelerator

XCache
XCache

График производительности (лучше меньше)
Performance Graph

Из приведенных выше результатов eAccelerator имеет небольшое преимущество в производительности по сравнению с APC и XCache. Тем не менее, самое важное из вышеперечисленных данных состоит в том, что любое кэширование кода операции дает огромный прирост производительности.

Я решил использовать APC из-за следующих двух причин:

  • Пакет доступен в официальном репозитории Debian.
  • Более функциональная панель управления

Подводя итог моему опыту:

Простота установки: APC > eAccelerator > XCache
Производительность: eAccelerator > APC, XCache
Панель управления: APC > XCache > eAccelerator

Ответ 1

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

Чтобы принять мое решение, я использовал ab (сканер apache) для тестирования сервера и протестировал три комбинации (zend, eaccelerator, оба выполняемые) и доказал, что eAccelerator сам по себе дал максимальную производительность.

Если у вас есть роскошь времени, я бы порекомендовал делать подобные тесты самостоятельно и принимал решение на основе ваших результатов.

Ответ 3

Я провел несколько тестов с помощью eAcclerator, APC, XCache и Zend Optimizer (хотя Zend - это оптимизатор, а не кеш),

Результаты тестов http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

Результат: eAccelerator является самым быстрым (во всех тестах), за которым следуют XCache и APC. (На диаграмме указано количество секунд, чтобы вызвать домашнюю страницу WordPress 10 000 раз).

Zend Optimizer сделал все медленнее (!).

Ответ 5

У меня был хороший успех с eAccelerator (улучшение скорости без нагрузки примечательно), но XCache также кажется довольно перспективным. Возможно, вам захочется выполнить некоторые испытания с каждым, хотя ваше приложение может масштабироваться по-разному на каждом.

Ответ 6

Я использую XCache уже более года без каких-либо проблем.

Я попытался переключиться на eAccelerator, но в итоге появился куча сегментированных ошибок (это меньше прощает ошибки). Основное преимущество eAccelerator заключается в том, что это не только кеш-код операции, но и оптимизатор.

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

Ответ 7

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

Итак, я бы сказал:

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

Но я бы сказал:

  • Удостоверьтесь, что это ДЕЙСТВИТЕЛЬНО Разбор кода PHP, который вызывает проблемы с производительностью, профилируя ваше приложение. Я думаю, что это очень вероятно, что это не так - в этом случае вы будете тратить свое время (фактически, используя свое время отрицательно продуктивно), установив любой из них.