Тонкая настройка memory on demand в облаке


Новость одной строкой: теперь клиенты могут изменять параметры MOD из панели управления.

Давным-давно в нашем mod-server'е была реализована возможность управления параметрами выделения памяти. Это было реализовано на уровне самого сервера и параметров базы данных.

… Но этого не было в веб-интерфейсе. Самые настойчивые клиенты просили изменить настройки — и мы их меняли вручную. Глупо, да?

Наконец-таки, мы исправили ситуацию — настройки MOD-сервера стали доступны клиентам. Большая их часть применяется «на ходу» и не требует перезагрузки или приостановки обслуживания.

Принцип работы Memory-on-Demand

В зависимости от количества запущенных программ, требуется различный объём памяти. Поскольку память оплачивается в «гигабайто-часах» (на самом деле, в килобайто-наносекундах), то тратить лишние деньги на неиспользуемую память жалко. Но и ютиться в маленьком объёме, залезая в своп, тоже нехорошо.

Вся система MOD состоит из трёх компонент: сервера, базы данных (настройки) и агентов.

Агент — modd (mod daemon) запущен внутри гостевой машины, он записывает в xenstore (система, благодаря которой возможно взаимодействие гостевой системы и управляющей в dom0 без использования сети) информацию о текущем состоянии памяти. Точнее, он просто записывает данные из /proc/meminfo в xenstore в data/mod_meminfo.

Сервер смотрит на эти цифры и решает, добавить ли памяти, или уменьшить. Алгоритм работы MOD-сервера (в общих чертах): считается объём свободной памяти (мы правильно учитываем buffers и cached), если её больше, чем нужно, то память уменьшают. Если меньше, чем нужно — то увеличивают.

Параметры, управляющие работой MOD

MOD имеет следующие параметры:

Если в поле написан ноль (или ничего не написано), значит, используются значения по-умолчанию.

Исключения


Список приложений, для которых MOD не нужен. Если приложение является основным на сервере, лимиты памяти можно выставить одинаковыми и не мучать сервер по-понапрасну:


P.S. Предыдущий топик по этой теме: habrahabr.ru/company/selectel/blog/99157
@amarao
30.06.2011 20:51 UTC
Первоисточник