Сравнение PHP кэшеров в реальных условиях

// Март 25th, 2011 // Highload, PHP, Веб-разработка

Один из моих читателей (тоже Андрей кстати) провел тестирование различных кэшеров опкода PHP на своём проекте. И с его разрешения, публикую результаты проведённых полевых испытаний.

Синтетические тесты

Если вы хотите посмотреть синтетические тесты, то ни есть тут, и тут. Вкратце результаты синтетического тестирования таковы:

В лидерах, по-прежнему, eAccelerator и XCache. Даже помня о точности замеров, не приходится сомневаться, что APC работает в несколько раз медленнее, чем eAccelerator, а XCache плохо переваривает большие объемы данных.

Реальные тесты

Теперь посмотрим тесты на Symfony приложении:

apc (apc.stat=off):
-------------------
Transactions:                   50000 hits
Availability:                 100.00 %
Elapsed time:                 475.69 secs
Data transferred:             401.31 MB
Response time:                  8.90 secs
Transaction rate:             105.11 trans/sec
Throughput:                     0.84 MB/sec
Concurrency:                  935.97
Successful transactions:       50000
Failed transactions:               0
Longest transaction:           11.25
Shortest transaction:           0.38

apc (apc.stat=on):
------------------
Transactions:                   50000 hits
Availability:                 100.00 %
Elapsed time:                 488.21 secs
Data transferred:             413.08 MB
Response time:                  9.16 secs
Transaction rate:             102.41 trans/sec
Throughput:                     0.85 MB/sec
Concurrency:                  937.62
Successful transactions:       50000
Failed transactions:               0
Longest transaction:           12.17
Shortest transaction:           0.66

eacclerator:
------------
Transactions:                   50000 hits
Availability:                 100.00 %
Elapsed time:                 507.61 secs
Data transferred:             401.31 MB
Response time:                  9.54 secs
Transaction rate:              98.50 trans/sec
Throughput:                     0.79 MB/sec
Concurrency:                  939.90
Successful transactions:       50000
Failed transactions:               0
Longest transaction:           11.69
Shortest transaction:           0.55

xcache:
-------
Transactions:                   50000 hits
Availability:                 100.00 %
Elapsed time:                 527.36 secs
Data transferred:             401.31 MB
Response time:                  9.93 secs
Transaction rate:              94.81 trans/sec
Throughput:                     0.76 MB/sec
Concurrency:                  941.45
Successful transactions:       50000
Failed transactions:               0
Longest transaction:           12.98
Shortest transaction:           0.60

any cachers off:
----------------
Transactions:                   50000 hits
Availability:                 100.00 %
Elapsed time:                1310.02 secs
Data transferred:             401.31 MB
Response time:                 25.44 secs
Transaction rate:              38.17 trans/sec
Throughput:                     0.31 MB/sec
Concurrency:                  970.93
Successful transactions:       50000
Failed transactions:               0
Longest transaction:           30.15
Shortest transaction:           0.55

Результаты

С незначительным преимуществом победил APC. Мне, если честно, он тоже нравится. Я перепробовал почти все кэшеры (кроме xCache) и остановился на нём, в т.ч. из-за удобных инструментов мониторинга. Если у вас есть опыт работы с php-кэшерами, делитесь в комментах.

Share

Спасибо!


Если вам помогла статья, или вы хотите поддержать мои исследования и блог - вот лучший способ сделать это:


3 Responses to “Сравнение PHP кэшеров в реальных условиях”

  1. Обратил внимание, что такой параметр как Elapsed time — он, ясное дело, для чистого РНР самый большой. Но если Concurrency более-менее стабильно одинаковое, как и Transaction rate, то почему общее время для разных кешеров так сильно отличается. Посмотрите, с xCache 525 секунд, а в APC с отключенной статистикой — 475, в принципе, разница достаточно большая.

  2. читаю различные, сейчас, тесты — у всех различный результат… выбор нужно делать исходя из определенных задач, и уже тогда тестировать

Комментировать