@ReFeRy

Стоит ли пытаться воткнуть кэш везде, где только можно (memcached, проект на php)?

Есть работающий сайт, контентный проект с UGC. Много действий пользователей, много текстового контента. Сайт работает на одном сервере, основное хранилище информации mysql, для кэширования используется memchache.

Соотношение нагрузки таково:
MySQL: 101 запрос в секунду, 2 Гб трафика в час
Memcache: 40 запросов в секунду, 600 Мб трафика в час
Трафик: 40к уников, 350к просмотров в сутки (и ещё много действий через AJAX).

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

P.S. Сайт написан на голом php, общение с mysql через велосипед. В кэш отдавал пока те запросы, которые перебирают большие таблицы, либо запрашиваются сотни/тысячи раз между изменениями данных.
  • Вопрос задан
  • 451 просмотр
Пригласить эксперта
Ответы на вопрос 3
VELIK505
@VELIK505
Руководитель департамента profitcentr.com
Соотношение нагрузки таково:
MySQL: 101 запрос в секунду, 2 Гб трафика в час
Memcache: 40 запросов в секунду, 600 Мб трафика в час

Это вообще неочём... Я бы даже сказал это мизер...
Лучше оптимизировать тяжелые sql запросы если как таковые имеются.
Ответ написан
@RidgeA
1. Кешировать можно все, что позволяет кешировать бизнес-логика. Мизерный прирост в 10-ти местах может дать суммарно лучше прирост, т.к. эти мизерные запросы не будут лишний раз насиловать базу и база сможет быстрее обслуживать запросы.
2. Можно кешировать страницы и http запросы на уровне веб-сервера, до php запрос не должен дойти вообще - это может дать прирость общей производительности.
3. Если это что-то вроде блога, где посты меняются не так часто, а то и вообще не меняются, можно основные странички сгенерировать в уже готовый html и отдавать их как статику через web-сервер. Менять эти странички на серваке в случае какого-либо изменения.
Ответ написан
akubintsev
@akubintsev
Опытный backend разработчик
Я понимаю, что серебряной пули не бывает, но может кто-то из своего опыта скажет - стоит ли пытаться переложить нагрузку на кэш в тех случаях, когда экономия выйдет мизерной? Например, сейчас кэш практически не используется в блогах, комментариях, личных сообщениях - там очень много обновлений, выгода от введения кэша будет мизерной, а кодить много.


Не стоит.
Управление кешем сложная задача. А если кешировать всё подряд, то легко получить неконсистентное состояние и понять где беда будет не просто.
Ответить на ваш вопрос только обвесив сперва весь проект метриками.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы