Кеширование на файлах, мои бенчмарки

Поспорил с Халидом Байахедином на drupal.org и решил провести свои бенчмарки на Amd Turion 1800 MHz, 1 гигабайт оперативной памяти. Drupal 5.6 c вбитыми тестовыми данными. 100 статей. Не суть важно при загрузке титульной страницы. Итак. параметры запуска: ab -c 30 -t 60 http://localhost/

Результаты с кешем на файлах(Results with file cache module):

Concurrency Level: 30
Time taken for tests: 60.46221 seconds
Complete requests: 8716
Failed requests: 2
 (Connect: 0, Length: 2, Exceptions: 0)
Write errors: 0
Non-2xx responses: 2
Total transferred: 149757167 bytes
HTML transferred: 145637994 bytes
Requests per second: 145.15 [#/sec] (mean)
Time per request: 206.676 [ms] (mean)
Time per request: 6.889 [ms] (mean, across all concurrent requests)
Transfer rate: 2435.57 [Kbytes/sec] received

Результаты с кешем на базе данных(Results with cache in MySQL):

Concurrency Level: 30
Time taken for tests: 60.6133 seconds
Complete requests: 7864
Failed requests: 4743
 (Connect: 0, Length: 4743, Exceptions: 0)
Write errors: 0
Non-2xx responses: 2
Total transferred: 134764170 bytes
HTML transferred: 131049365 bytes
Requests per second: 131.05 [#/sec] (mean)
Time per request: 228.915 [ms] (mean)
Time per request: 7.630 [ms] (mean, across all concurrent requests)
Transfer rate: 2193.19 [Kbytes/sec] received

Ну чего. У меня чувство что любят лукавить члены ассоциации друпала. Мой кеш работает быстрее.

Комментарии

Submitted by Azarov on

Complete requests: 7864
Failed requests: 4743
(Connect: 0, Length: 4743, Exceptions: 0)

Походу кешак друпала сдыхает на блокировках таблиц? :) В общем весело.
Вывод - кеш на базе - порнография.

Submitted by Гость (не проверено) on

Я надеялся увидеть тут прорыв в скорости, а так... некчемное преимущество, вы не пожалели о том, что зря старались?

Submitted by Azarov on

эм.... А вы просто посмотрите что происходит при удалении нескольких десятков тыщ записей когда одновременно 10 пользователей пишут коммент. что происходит с базой? вы посмотрите на нутро cache_clear_all() :)

В данном случае все почти одинаково. однако у меня на сервере планируется развмещение пары нагруженнных проектов. соответсвенно БД будет напрягаться. Наверно, легче из файла поднять данные?

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

А еще посмотрите число невыполненных запросов при использовании кеша на базе. Это что? блокировки роль сыграли? :)
Failed requests: 4743
(Connect: 0, Length: 4743, Exceptions: 0)

А что будет на нагрузке пользователями? :)
Представьте как они будут получать отлупы? Вернутся они потом на сайт? :)

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