syslog vs redis. Раунд 1

Собственно потребовалось провести тест (синтетика) на скорость записи в сислог и в redis.

Предыстория такова: требуется подыскать решение для накопления статистики, для последующей её обработки и сохранения в базе. Проблема в том, что сырых данных может приходить порядка 12ГБ в день.

 

Тестовое окружение: виртуалочка на sles'е, apache2, php 5.2.?, eaccelerator, syslog-ng, redis 1.2.6, rediska 0.4.2 .

В первом приближении требуется понять если большая разница в производительности. Для тестов используем ab (apache benchmark).
Для тетстов Redis используем библиотечку Rediska, в redis записываются данные в конец списка (см. тип LIST), для syslog - одноимённую встроенную в пхп функцию.
Провёл 3 серии замеров для обоих решений, в каждой серии по 4 замера по 5000 запросов с кол-вом конкуретных запросов 5, 10, 20, 40. Затем серии усреднены по типам запросов.

Результат (по оси X - проценты от кол-ва выполненных запросов, по оси Y - время выполнения запроса)

 

По графику видно, что тестировал я в результате больше apache нежели syslog или redis =)

Отставание redis объясняется большим объемом php-кода (библиотека Rediska).

 

Следующим этапом будет исключение апача из тестов, последним этапом (если потребуется) будет эмуляция реальной ситуации (N php-fpm демонов будут писать статистику в один редис или в один сислог)