Контейнеризация на Linux в деталях — LXC и OpenVZ Часть 2

Данная статья является продолжением серии, начатой в публикациях Контейнеры — это будущее облаков и Контейнеризация на Linux в деталях — LXC и OpenVZ. Часть 1. Если публикацию про будущее можно пропустить, то статья «часть 1» будет обязательна к прочтению, чтобы понять, про что мы тут говорим :)81860413b7035bbb8137428b89b8217f.jpgТехническая реализация подсистемы лимитирования аппаратных ресурсов контейнеров Для полноты описания мы обязательно должны затронуть аспект разграничения не только ресурсов системы и прав, но и аппаратных ресурсов. Какие ресурсы нам нужно делить между пользователями: Процессор Жесткий диск (нагрузка на него) Память (объем) Для всех подобных ограничений используется подсистема cgroups. Нагрузку на ввод/вывод можно фиксировать с помощью подсистемы cgroups blkio, причем, важно отметить, что есть как возможность задания жестких лимитов в байтах/секунду и операциях в секунду (IOPS), так и возможность задания весовых коэффициентов (то есть, например, 10% от всего сервера). Память лимитируется посредством memory cgroup, тут все довольно просто — указываем объем ОЗУ, если контейнер его превышает — процесс испытывает сообщение OOM. Для процессора допустима только возможность указания нагрузки в процентах, что объясняется особенностями реализации планировщика на Linux. Итого, для реализации разграничения использования ресурсов мы воспользовались следующими cgroups: cpu memory blkio Все, что Вы хотели узнать, но боялись спросить про контейнеры в Linux

© Habrahabr.ru