#linux #caching #memcached #lamp
Вопрос:
Для сайта LAMP с одним сервером (который обычно находится под довольно высокой нагрузкой), как лучше всего использовать memcache?
Имеет ли смысл запускать демон memcache на том же сервере, что и приложение, или это просто отнимет ценную память у MySQL, что приведет к потере чистой производительности. Имеет ли вообще смысл использовать memcache в этом сценарии — или лучше всего всегда иметь выделенные серверы для memcache?
Я ценю, что для того, чтобы действительно ответить на этот вопрос, потребуется профилирование сайта до и после, но я бы предпочел не делать этого на данном этапе на живом сайте. Тем более, что кто-то там, безусловно, знает ответ с самого начала.
Ответ №1:
Как правило, рекомендация (см. Раздел Что касается общей памяти? на странице memcached) заключается в том, чтобы запускать memcached на тех же машинах, что и веб-серверы, исходя из того, что веб-приложения загружены процессором (чего не происходит с memcached), в то время как memcached загружены памятью (чего не происходит с большинством веб-приложений, по крайней мере, по сравнению).
Поэтому, если на вашем веб-сервере достаточно памяти, рекомендуется запустить на нем memcached. МММ.
Ответ №2:
Другой вариант кэширования в памяти — в зависимости от масштаба кэшируемой информации-это кэширование в APC. Вы должны запускать этот (или аналогичный кэш кода операции), чтобы в любом случае ускорить доставку страниц PHP, поэтому, если вы кэшируете где-то от нескольких до сотни или более меньших (у меня есть несколько переменных размером около 15 КБ каждая из более чем 70) одновременно, вы можете найти некоторые преимущества для их хранения в APC.
У меня есть сайт, который кэширует некоторые запросы к базе данных, а также кэширует файл config.ini после анализа-и на моем (занятом) сайте я буду экономить буквально миллионы потенциальных обращений к базе данных в день.