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