Сравнительные тесты кеширования в 1С-Битрикс: Управление сайтом

Тут задался вопросом - какое кеширование лучше?

Сходу есть два варианта: memcached и файлы. Их и рассмотрим. Файловое кеширование 1С-Битрикс использует по-умолчанию. Итак, тестовый сервер - 1С-Битрикс, редакция Малый бизнес, производительность и конфигурация:

Подсистема Оценка Примечание
Конфигурация 27.73
Среднее время отклика 0.0361 секунд
Процессор (CPU) 9.0 миллионов операций в секунду
Файловая система 10 347.5 файловых операций в секунду
Почтовая система 0.0163 время отправки одного письма (в секундах)
Время старта сессии 0.0001 секунд
База данных MySQL (запись) 12 177 количество запросов на запись в секунду
База данных MySQL (чтение) 12 292 количество запросов на чтение в секунду
База данных MySQL (изменение) 11 523 количество запросов на изменение в секунду

Можно отметить, что база данных и файловая система работают на одном уровне производительности, что позволит нам более точно произвести сравнение.

Как буду тестировать: на неделю сделаем кеширование файлами, потом включим memcached и сравним результаты. А также сделаем нагрузочное тестирование - посмотрим, как сайт и сервер будут вести себя под нагрузкой.

1.Временное тестирование.

Данные по нагрузке возьмем из утилиты «acct», с 10.10.2012 по 21.10.2012 работало файловое кеширование, с 21.10.2012 по 07.11.2012 - memcached.

График зависимости нагрузки, которая создается одной выдачей страницы (введены дополнительные коэффициенты, для удобства восприятия).

По результатам можно обратить вниманием на такую зависимость: после включения memcached нагрузка на файловую систему и базу данных (mysql) стала зависеть друг от друга, а при файловом кешировании - они не зависят друг от друга, при этом после включения memcached общая средняя нагрузка на процессор  уменьшилась.

Поэтому: при хорошей производительности базы данных - есть смысл использовать memcached, в противном случае -  файловое кеширование будет предпочтительнее.

2. Нагрузочное тестирование.

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

Количество страниц в секунду, в зависимости от числа подключений.

Время генерации страниц в зависимости от числа подключений.

Теперь видно, что при определенных количествах посещений (до 5 млн пользователей в час) гораздо выгоднее использовать memcached, а уже при больших количествах - mysql хуже справляется с нагрузкой, чем файловая система.

Выводы. Что в итоге?

Выбор типа кеширования - зависит от конфигурации сервера и посещаемости сайта. На данном тестовом сервере выгоднее использовать memcached, благодаря производительной субд и небольшой посещаемости.


Координационный
совет SPECIA
Санкт-Петербург,
8-я Красноармейская ул., д.10