Почти всегда на крупных проектах, особенно сообществах, приходится очень много кешировать данные, такие, как количество сообщений, данные пользователя, общая информация…
На наших проектах мы уже несколько л��т использовали файловое кеширование. Т.е., данные каждого пользователя заносились в файл, и по мере надобности изменялись. Проблема нагрузки была всегда, особенно на БД Mysql.
Изменили файловое кеширование на кеширование Memcached. Результаты просто потрясающие. Нагрузка сошла на нет, очередь коннектов к базе данных ушла. Сайты начали работать в разы быстрее.
Почему нагрузка на Mysql уменьшилась? Мое мнение — уменьшилось количество запросов на чтение и запись на жесткий диск, от этого разгрузился Mysql. Скорость работы диска, как и загруженность диска запросами на чтение-запись, как известно, одни из параметров, которые влияют на производительность Mysql.
UPD:
Что было:
1. Около 250 000 файлов кеша.
2. Около 2ГБ занято под кеш.
3. Около ~ 30 запросов/секунду (в пике ~ 50) на чтение-запись кеша с диска.
Что стало:
1. 0 файлов кеша
2. 400 МГ выделено под memcached (срок хранения данных в кеше — неделя)
3. 0 запросов на чтение-запись кеша.
На наших проектах мы уже несколько л��т использовали файловое кеширование. Т.е., данные каждого пользователя заносились в файл, и по мере надобности изменялись. Проблема нагрузки была всегда, особенно на БД Mysql.
Изменили файловое кеширование на кеширование Memcached. Результаты просто потрясающие. Нагрузка сошла на нет, очередь коннектов к базе данных ушла. Сайты начали работать в разы быстрее.
Почему нагрузка на Mysql уменьшилась? Мое мнение — уменьшилось количество запросов на чтение и запись на жесткий диск, от этого разгрузился Mysql. Скорость работы диска, как и загруженность диска запросами на чтение-запись, как известно, одни из параметров, которые влияют на производительность Mysql.
UPD:
Что было:
1. Около 250 000 файлов кеша.
2. Около 2ГБ занято под кеш.
3. Около ~ 30 запросов/секунду (в пике ~ 50) на чтение-запись кеша с диска.
Что стало:
1. 0 файлов кеша
2. 400 МГ выделено под memcached (срок хранения данных в кеше — неделя)
3. 0 запросов на чтение-запись кеша.