Назад | Перейти на главную страницу

Руководство по настройке памяти LAMP

Я пытаюсь настроить сервер LAMP. На самом деле я выбрал Nginx, но, полагаю, это не имеет отношения к теме. Сервер будет использоваться в качестве хоста WordPress. Я планирую использовать APC для полного кеширования страниц (плагины APC Object Cache Backend и Batcache).

Мой вопрос не в количестве оперативной памяти, установленной на машине, а в пропорции оперативной памяти, выделенной каждому компоненту сервера LAMP (или LEMP). Я спрашиваю об этом, потому что все статьи о конфигурации памяти, которые я нашел, говорят то же самое:

У меня есть следующие компоненты, которые конкурируют за оперативную память:

Что-то мне подсказывает, что позволять этим процессам конкурировать за память - плохая идея. Им нужно знать свои пределы.

Я понимаю, что фактическое распределение памяти может зависеть от использования веб-сайта, но есть ли доля для начинающих? Например, выделить 20% на MySQL, 40% на APC, 20% на php-fpm, а остальное оставить системе?

Хорошо, во-первых, вы обычно не «распределяете» RAM по компонентам. Процессы ЗАПРОС RAM (обычно через malloc() или аналогичные средства), а ядро ​​операционной системы либо разрешает, либо отклоняет запрос в зависимости от доступных ресурсов.
Ядро также делает такие вещи, как выяснение, если у вас недостаточно ОЗУ и вам нужно использовать пространство подкачки, чтобы подделать его, или если программа запросила целую кучу ОЗУ, которую она активно не использует (которую можно сбросить в подкачку, чтобы освободить больше реальной физической RAM).

Теперь некоторые программы - например, серверы баз данных, серверы кеширования и т. Д. - позволяют угадать, сколько оперативной памяти они должны запросить. Если это то, о чем вы спрашиваете, правильный ответ: «Столько оперативной памяти, сколько им необходимо для достижения оптимальной производительности вашей рабочей нагрузки».

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

Единственное практическое правило - «начать с конфигурации по умолчанию и при необходимости изменить».