Сравнительные тесты кеширования в 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, благодаря производительной субд и небольшой посещаемости.