A, ограничение Докер ресурсов
Докер способен работать ядро зависит от двух характеристик, пространств имен и контрольных групп. По умолчанию, нет никаких ограничений контейнера ресурсов, она может исчерпать все ресурсы на хосте-ядрах может быть назначена в контейнер. Поэтому для того, чтобы предотвратить все ресурсы хоста, запущенный контейнер работает, мы должны использовать ограничение ресурсов. И некоторые из особенностей нехватки ресурсов нужна поддержка ядра Linux Linux возможности, версии 1,13, прежде чем грузчик, поддерживает только график CFS (Completely Fair Scheduler полностью справедливый планировщик), более поздние версии также поддерживают графику в реальное время
График КПБ: каждый процесс имеет приоритет, приоритет процессы в реальное время от 100-139, графика КСФА используется для планирования этого не в реальное время процесс планировщика, более высокий приоритет процесс будет выполнен первым процессор
график в реальном времени: приоритет процесса в реальном времени планировщик, процесс от 0-99, график в реальном времени предназначен для планирования процессов в реальном времени планировщика
Два, память, предельные параметры Докер-х ресурсы процессора
1, ограничение процессора
--cpus = <значение>: Определяет, как контейнер ресурсов процессора доступны может быть использовано, если ядро 4 процессора, может быть установлен на 1,5, то 1,5 ресурсов процессора можно использовать до основного контейнера, если нет --cpuset-процессоров затем 1.5 ядро может быть использовано, может быть любым из основного ресурса. Эта опция может быть использована только в приведенном выше docker1.3
--cpu-акция: контейнер распределенного ресурсов процессора, ресурсы процессора, если другие контейнеры пустые, контейнер 1, в случае необходимости, будет использовать все ресурсы центрального процессора, и назначать задачи любой обработки ядра
--cpuset-CPU: Определяет процессор может быть использован для основного контейнера, который, если процессор и 4, то в соответствии с числом, чтобы отличить каждого из ядер 0-3, этот параметр установлен в 0, то это означает, что может быть использовано в первом процессоре и второй сердечник.
2, память и предел подкачки
--memory = <значение>: Задает максимальное количество памяти может быть использовано в качестве контейнера, если процесс использует больше памяти, чем предел, это может убить
--memory замена: контейнер определяется как максимальное количество подкачек доступны, эта опция должна использоваться в помещении с помощью --memory параметров, если не установлена --memory параметра, то этот параметр не вступит в силу
- память swappiness: своп контейнеры расположены тенденция, как, 0-100.
- память резервирование: мягкое использование ограничения памяти контейнера, это означает, что меньше, чем --memory должен быть установлен, когда система памяти плотно, будет вернуть утраченную память памяти значения значения -reservation этого контейнера, использование памяти судна вплоть до стандартной оговорки
--oom-убить-отключение: Когда процесс контейнера происходит OOM, независимо от того, чтобы убить контейнер
В-третьих, использование измерения давления инструментом для тестирования
1, тест памяти
1.1, не ограничивает использование центрального процессора
Вы можете видеть, использование процессора полон
1.2, был добавлен параметр перезапуска ограничение памяти сосуд
Настройки параметров вступают в силу
2, тест памяти
2.1, не ограничивает использование памяти, он определяет давление зондирования две памяти, каждая 128m
Фактическое использование 256M памяти
2.2, перезапустить контейнер, добавить ограничение памяти
--memory контейнер может быть использован только для ограничения памяти 128m