Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > XCache vs APC vs eAccelerator


Автор: WIPS 30.12.2008, 01:45
Стал вопрос в выборе opcode/var кешера. Что от него нужно: собно кеширование opcode (понимается прекомпиленный и желательно оптимизированный byte код) в память, возможность кеширования в память переменных. Поиск сузился до сабжа.

XCache. Плюсы:
Поддержка наиболее свежих версий PHP;
Незначительное (около 3%) превосходство над APC (по собственным тестам на Win32);
Продвинутый admin интерфейс;
Есть интерфейс для работы в составе Zend_Framework;
Стабильность (если верить автору);

XCache. Минусы:
// пусто

APC. Плюсы:
Продвинутый, но не так как в XCache, admin интерфейс;
Входит в состав PECL;

APC. Минусы:
Чуть медленнее XCache;
Он http://www.joomlaperformance.com/articles/performance/why_apc_sucks_and_should_be_pulled_from_pecl_53_14.html;

eAccelerator. Плюсы:
По сторонним тестам самый шустрый (ссылку потерял);

eAccelerator. Минусы:
На продакшн-сервере после n едниц времени работы загонял процесс в lock;

Ваши мнения....

Обрывки информации по теме:
http://itblog.su/xcache-vs-eaccelerator.html
http://forum.shelek.ru/index.php/topic,15751.0.html
http://www.directadmin.com/forum/showthread.php?p=133058
http://itst.net/654-php-on-fire-three-opcode-caches-compared

Автор: WIPS 6.1.2009, 11:19
Слабо верится, что никто на форуме не пользовался этими технологиями. Модеры, может эту тему перенести в более "продвинутый" раздел?

Автор: skyboy 6.1.2009, 14:02

M
skyboy
Тема мне кажется достаточно интересной, чтоб стоить закрепления.

WIPS, может, и правда - мало кто работал хотя бы с двумя, чтоб можно было бы сравнивать?

Автор: Nordom 6.1.2009, 16:56
А пес его знает - как мне некогда, "в детстве", один знакомый админ посоветовал XCache - так я его на все сервера, с которыми когда-либо имел дело - ставлю, пока никаких нареканий...

Автор: WIPS 7.1.2009, 14:59
Nordom, а как давно было "детство", т.е. сколько уже исп-ся XCache?
Какая нагрузка на серверах?
Используется ли XCacher для кеширования переменных? Если да, то какие объемы кешируемой инф-ции?

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

Автор: WIPS 12.1.2009, 11:37
3-й день на серверах стоит XСache. Пока используется только в качастве opcode-cacher. Полет нормальный!

Автор: WIPS 3.2.2009, 19:59
Уже неделя использования как var-кешера. Полет отличный smile

Автор: efferson 21.2.2009, 11:09
У меня в компании одно время использовался eAccelerator. Всё было хорошо, до тех пор пока не появился Bitrix smile Проекты на его основе время от времени загибались, раняя при этом Apache в segmentation failed. После длительных танцов с бубном выяснилось, что проблема именно в связке eAcceleraot/Bitrix. В итоге от eAccelerator'a пришлось отказаться :(

Автор: gcc 28.6.2009, 03:34
если используется eAccelerator, нужно ли вместе с ним использоть кэш контекнта в ngix или в apache? 
(так как в этих друх кэш занимает прилично до 2Гб занимал, если он не нужен то навреное его лучше не использовать, так как обработать этот кэш тоже нужны ресурсы навреное)

Автор: MoLeX 29.6.2009, 07:50
Настройка http://www.denwer.ru/ AND http://eaccelerator.net/

1. Качаем версию eAccelerator'а (http://www.sitebuddy.com/PHP/Accelerators/eAccelerator_windows_binaries_builds или http://eaccelerator.net/) для своей версии PHP 

2. Кладем *.dll в S:\usr\local\php5\ext (будем считать что денвер установлен в корень диска S:)

3. Качаем http://bart.eaccelerator.net/source/ необходимую версию контроль панели

4. Извлекаем и кладем файлы (у меня получилось вот так S:\home\test\www\eaccelerator)

5. Создаем папку кэша (S:\temp\eaccelerator)

6. Редактируем php.ini (добавляем в конец следующие строчки)
Код

extension="eAccelerator0951_5.2.4.dll"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="S:\temp\eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="900"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.admin.name="admin"
eaccelerator.admin.password="admin"
eaccelerator.allowed_admin_path = "S:\home\test\www\eaccelerator\eaccelerator\control.php"


7. рестарт/запуск сервера

8. Контроль панель доступна по адресу  http://test/eaccelerator/control.php


Автор: WIPS 31.7.2009, 12:01
MoLeX, Вы это к чему?

Автор: Severyanin 4.8.2009, 13:22
Использую eAccelerator, проекты на cakephp, сейчас начинаю работать с симфонией. Пока к нему никаких нареканий

Автор: nerezus 4.8.2009, 19:16
А это нормально, что джумлу на 20-25% только XCache ускорил?

Автор: WIPS 5.8.2009, 10:17
nerezus, Вы считаете, что мало? По моему оч. хороший прирост.

Автор: nerezus 8.8.2009, 21:27
WIPS, я ожидал, что как минимум раза в 2 будет прирост.

Автор: LeoK 22.1.2010, 20:34
memcache+eaccel - для пула серверов и безболезненного гориз масштабирования вар-кешера...
eaccel - для мелких посещаемых проектов

Автор: awers 6.2.2010, 11:32
По результатам моих тестов, для Magento из выше перечисленных eAccelerator самый лучший. Его можно использовать не только в качестве opcode кешера, но и в качестве backend кешера. 

Автор: nerezus 6.2.2010, 11:43
Цитата

Его можно использовать не только в качестве opcode кешера, но и в качестве backend кешера. 
 Это как-то улучшает его действия как кешера опкодов?)

P.S. Это его в мейнстрим пихают или где?

Автор: awers 6.2.2010, 13:36
Цитата(nerezus @  6.2.2010,  12:43 Найти цитируемый пост)
 Это как-то улучшает его действия как кешера опкодов?)

Это я добавил плюсик в копилку eAccelerator.



Цитата(nerezus @  6.2.2010,  12:43 Найти цитируемый пост)
P.S. Это его в мейнстрим пихают или где?

Тут с несчастным php-fpm никак не родят smile

Автор: lumega 10.2.2010, 19:12
конечно в выборе есть разница еще и с учетом того как загружается процесс php (mod_php, cgi, fastcgi).
т.к. не все кешеры одинакого хранят (только память и память+диск) и обрабатывают свой кеш...

вообще этих кешерей тучи, а не только из перечисленных. 
есть еще http://http://www.nusphere.ru/catalog/server/nusphere_phpexpress/

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

Автор: LeoK 22.2.2010, 14:02
Натолкнулся на такой вот http://2bits.com/articles/benchmarking-drupal-with-php-op-code-caches-apc-eaccelerator-and-xcache-compared.html - собственно предсказуемо

Автор: IgorIV 23.2.2010, 10:43
Цитата(awers @  6.2.2010,  11:32 Найти цитируемый пост)
По результатам моих тестов, для Magento из выше перечисленных eAccelerator самый лучший. Его можно использовать не только в качестве opcode кешера, но и в качестве backend кешера. 

Можно поподробнее про эти 2 пункта.
Тесты, если остались.
И пример backend кешера.

Автор: awers 23.2.2010, 12:00
IgorIV, про бэкэнд читал http://www.magentocommerce.com/download/release_notes, там по тексту искать eaccelerator и eaaccelerator (описались). Только вот странно, сейчас исходники поковырял - немогу понять де там они что добавили. 
http://www.2shared.com/file/11604037/d7553b75/High_Performance_eCommerce.html тесты. Будет мало - скажи.

Добавлено через 12 минут и 5 секунд
А вот и оно http://bart.eaccelerator.net/doc/phpdoc/

Автор: IgorIV 23.2.2010, 12:58
awers, которое "оно" я и так знаю. Вообще-то, я ожидал твои тесты, сам писал - По результатам моих тестов.
Но всё равно, спасибо, влом регистрироваться, только для того чтобы почитать какие-то тесты.
Бэкенд нашёл - http://www.internet-technologies.ru/articles/article_1428.html

Автор: awers 23.2.2010, 16:26
Мои тесты - это siege / ab в руки и по 10 пятимитунтых тестов с кол-вом пользователей от 10 до 300, включенным keep alive. Ну как бы результаты такие же как и в том доке. Я не то что бы потерял результаты своих тестов, я их даже не сохранял.

Откуда столько лени? У меня кстати оттуда качается без регистрации.

Автор: IgorIV 23.2.2010, 16:58
awers, извини, неправильно объяснил, регистироватся на сайте программы. Ты сказал - Magento - я поискал, почитал что это. Увидел этот документ, но он доступен только после регистрации. А мне - см. выше.
Мне siege больше понравился.  Жаль под Windows его нет.

Автор: awers 23.2.2010, 17:06
IgorIV, Siege по какой то странной причине нагружет на 30% сильнее чем ab при одинаковых настройках. Это смущает.
А зачем под винду? Под веб девелопить, хостится и тестить лучше всё на линухах. Если нет возможности тестить на физическом сервере на линухе, то всегда можно запустить виртуалку ( virtual box советую не пользовать, он что то вообще никакой )

Автор: sTa1kEr 24.2.2010, 09:55
eAccelerator имеет один очень большой недостаток- он не работает в CLI. Кроме того по стабильности он отстает от APC и в отличии от последнего в отсутствует в PECL.
Что же касается backend кешера, то таковым может выступать любой opcacher, впрочем так же для этих целей можно напрямую использовать shared memory без всяких opcacher'ов. Причем последнее будет работать быстрее всего.

Автор: awers 24.2.2010, 11:30
sTa1kEr, если не секрет, зачем eAccelerator в CLI ? По стабильности за год нареканий никаких нет. Да и в пекле он мне ни к чему. 

Автор: sTa1kEr 24.2.2010, 12:16
Цитата(awers @  24.2.2010,  12:30 Найти цитируемый пост)
sTa1kEr, если не секрет, зачем eAccelerator в CLI ?

Затем же, зачем он и в php_cgi и mod_php - кешировать opcode.

Цитата(awers @  24.2.2010,  12:30 Найти цитируемый пост)
По стабильности за год нареканий никаких нет.

А у нас были, в основном конечно по мелочи, самая критичная проблема - это вероятность попадания в кеш только части скрипта и как результат полная неработоспособность сайта. В то же время в параллельно работающем проекте с APC те же самые проблемы отсутствовали. 

Цитата(awers @  24.2.2010,  12:30 Найти цитируемый пост)
Да и в пекле он мне ни к чему.

И все же это плюс в сторону APC

Автор: awers 24.2.2010, 12:59
Цитата(sTa1kEr @  24.2.2010,  13:16 Найти цитируемый пост)
Затем же, зачем он и в php_cgi и mod_php - кешировать opcode.

Так понятно, просто никогда даже не сталкивался с такой необходимостью. Надо значит надо smile

Автор: nerezus 28.2.2010, 11:30
Поставил xcache: у него есть офигенное преимущество: sudo apt-get install php5-xcache
А по факту ускорил двиг в дофига раз: с полсекунды до 70мс на младшей вдс.

Добавлено через 1 минуту и 4 секунды
Цитата

Надо значит надо
 И все же: зачем? Какая разница, скеширован он или нет, если скрипт будет запускаться раз в X минут?

Автор: sTa1kEr 4.3.2010, 15:39
Цитата(nerezus @  28.2.2010,  12:30 Найти цитируемый пост)
 И все же: зачем? Какая разница, скеширован он или нет, если скрипт будет запускаться раз в X минут? 

Их могут быть сотни, некоторые запускаются раз в минуту, некоторые реже, но так или иначе их средняя частота запуска достаточно высокая. Однако производительность - это не единственная проблема, так же проблемой является то, что не работает API. Т.е. к примеру, нельзя очистить кеш, не работают функции eaccelerator_clean() и eaccelerator_clear(). И не работают вышеупомянутые eaccelerator_get() и eaccelerator_set().

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

Автор: Muerto 18.7.2010, 00:55
А что лучше всего с Plesk Дружит?

Автор: Muerto 18.7.2010, 16:39
Установил, пришлось установить 6.0 версию ибо 6.1 не хотела устанавливатся!!! 
результат
Мой самый продвинутый(последний скрипт/движок)
Сгенерировано за: 0.0043 сек.
А было  0.008 сек. - 0.01 сек

И так вообще по всем сайтам на процентов так 30 быстрей генерация идет

Автор: Muerto 28.8.2010, 19:09
Установил APC
Вроде установка прошла успешно
в php.d есть apc.ini который делает 
Код

extenstion=apc.so
apc.enabled=1
apc.shm_size=30


Пытался даже это на прямую в php.ini писать

Но толку 0, когда пытаюсь использовать функции apc
К примеру
Код

apc_store('name','123',30);


Выкидывает

Fatal error: Call to undefined function apc_store()


Пока ещё не понял в чем проблема , надеюсь кто поможет...

Инсталировал просто - 
Загрузил все расширения через yum install что нужно
Затем pecl install apc
Затем создал apc.ini

рестарт апача, затем и сервера...
толку 0


Пытался ещё вторым методом через простой wget...
Тоже нифига!
make test не проходит

Автор: phpsc 6.1.2011, 14:17
подскажите кеширование которое можно установить на debian+lighttpd  apt-get'ом

Автор: skyboy 6.1.2011, 15:34
а в чем проблема?
что мешает установить php5-xcache или php-apc?

Автор: phpsc 7.1.2011, 09:43
Цитата(skyboy @ 6.1.2011,  15:34)
а в чем проблема?
что мешает установить php5-xcache или php-apc?

название пакета не мог найти.

спасибо)

Автор: skyboy 7.1.2011, 22:17
Цитата(phpsc @  7.1.2011,  08:43 Найти цитируемый пост)
название пакета не мог найти.

ну, я их отнюдь не учу наизусть:
Код

login@mycomp ~ $ apt-cache search xcache
php5-xcache - Fast, stable PHP opcode cacher


Автор: Muerto 26.2.2011, 12:13
Ставил eAccelerator, apc, memcache/d
В общем сайт летает лучше всего с eAccelerator
memcached у меня cpu в  99% убивал... APC хороший

Как кстати удалить memcached ?  smile 

Автор: LeoK 26.2.2011, 23:00
Цитата(Muerto @ 26.2.2011,  12:13)
memcached у меня cpu в  99% убивал...

memcached.so?
пробуйте memcache.so он менее функционален но быстрее

Автор: MoLeX 28.2.2011, 06:36
Цитата(Muerto @  26.2.2011,  12:13 Найти цитируемый пост)
Ставил eAccelerator, apc, memcache/d
В общем сайт летает лучше всего с eAccelerator


не мешало бы сначало понять что для чего служит

Автор: Muerto 28.2.2011, 20:03
MoLeX, Ну оно вроде понятно в общем.
Эксялятор чисто ускоряет, но не дает возможность кешировать переменные
ей пи си медленней примерно в полтора раза чем экселятор но дает кешировать переменные
мемкашед чисто переменные, сессии и тп

Автор: MoLeX 1.3.2011, 06:16
eAccelerator, APC - программа, ускоряющая исполнение сценариев PHP интерпретатором путём кэширования их байткода.
memcached — компьютерная программа, реализующая сервис кэширования данных в оперативной памяти на основе парадигмы хеш-таблицы.

То есть это разные по своей сути программы и сравнивать их вместе ошибочно. 

Лучший прирост наблюдал в связке eAccelerator + memcached

Автор: Muerto 1.3.2011, 08:42
MoLeX, Я как раз сейчас так и делаю Memcache+ eAccelerator...

Ток на мое удивление memcache не так крут как ожидал http://forum.vingrad.ru/forum/topic-323707.html

Автор: KLeonid 1.4.2011, 17:50
Цитата

eAccelerator, APC - программа, ускоряющая исполнение сценариев PHP интерпретатором путём кэширования их байткода.

Ой! А где же она хранит этот самый кешированный байткод? smile 
Т.е. хранить что-то кроме опкода им религия не позволяет? smile 

Цитата

То есть это разные по своей сути программы и сравнивать их вместе ошибочно.

Разные, но тот же APC, например, можно использовать для кеширования переменных, объектов, ответов мускула и т.д... Он точно так же сохраняет все эти данные в ОП в виде хеша.

Есть еще Redis - это что-то вроде простой БД в памяти.

Автор: dimarick 17.7.2011, 12:34
Сейчас сравнивал xcache vs eaccelerator
Результаты впечатляют.
Генерация страницы в среднем "без никто" 1500-1800 мс (за вычетом запросов sql)
xcache - 1000-1200 мс
eaccelerator - 500-700 мс

Xcache на потребление памяти не влияет.
eaccelerator - снижает в ~10(!) раз

Глюков не замечено.
CMS Drupal
Apache2, mod_php

Хз. может xcache криво настроен

Автор: Muerto 26.7.2011, 00:26
Цитата(KLeonid @ 1.4.2011,  17:50)
Цитата

eAccelerator, APC - программа, ускоряющая исполнение сценариев PHP интерпретатором путём кэширования их байткода.

Ой! А где же она хранит этот самый кешированный байткод? smile 
Т.е. хранить что-то кроме опкода им религия не позволяет? smile 

Цитата

То есть это разные по своей сути программы и сравнивать их вместе ошибочно.

Разные, но тот же APC, например, можно использовать для кеширования переменных, объектов, ответов мускула и т.д... Он точно так же сохраняет все эти данные в ОП в виде хеша.

Есть еще Redis - это что-то вроде простой БД в памяти.

Кстати хорошо описано http://abrdev.com/?p=1071
Заставило проверить Redis  smile 

Автор: Muerto 13.9.2011, 18:19
А кто что может сказать о Zend Data Cache?

Мне подарили Zend Server, и я вот устновил... по моим тестам на блоге на базе yii , он фактически на ровне с APC

Пока не очень знаю чем он лучше или хуже...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)