2015-12-23 3 views
3

Я тестировал изоляцию мезогрупп. Чтобы увидеть, какая ошибка возникает. Я запустил следующую программу оболочки с марафоном. Назначена память 1 МБ и 1 процессор.Изоляция групп Mesos не убивает задачи при достижении предела

#!/bin/sh 

temp=a 
while : 
do 
    temp=$temp$temp 
    echo ${#temp} 
    sleep 1 
done 

Один символ занимает 1Б пространства так выше программа должна бросить исключение когда длина строки темпа достигает около 1 МБ. Но задачи, похоже, убиваются случайным образом. Задача иногда убивается в длину 1048576 или 2097152 или 4194304. В идеале, поскольку 1 МБ является пределом, он должен был остановиться, когда длина равна .

Дополнительная информация - Ведомый запускается с --isolation = '/ контрольные группы центрального процессора, контрольные группы/MEM' Mesos версия - 0,25

ответ

1

Дисперсия вы видите можно объяснить следующим образом:

  • Объем памяти, занимаемый вашим скриптом, не является полностью детерминированным, поскольку он зависит от реализации интерпретатора оболочки, а также от размера разделяемых библиотек вашей системы (то есть частей этих библиотек, загружаемых в резидентный набор вашей программы) ,
  • Задача 1 МБ в Мезосе сопровождается 32 МБ для исполнителя. Поскольку исполнитель требует чуть меньше 32 МБ, для вашей задачи у вас будет чуть больше 1 МБ.
Смежные вопросы