Подскажите, каким образом можно сказать системе, чтобы некоторый процесс был жестко ограничен по количеству потребляемой оперативной памяти? Т.е. нечто вроде такого (псевдобаш команда): memlimit 100M fplay ~/Movies/Sun.avi — ограничиваем процесс "fplay ~/Movies/Sun.avi" максимальным количеством памяти в 100Мб.
Хочется решения, которое работает на возможно большем количестве *nix систем или хотя бы основанных на debian.
Здравствуйте, Аноним, Вы писали:
А>Подскажите, каким образом можно сказать системе, чтобы некоторый процесс был жестко ограничен по количеству потребляемой оперативной памяти? Т.е. нечто вроде такого (псевдобаш команда): memlimit 100M fplay ~/Movies/Sun.avi — ограничиваем процесс "fplay ~/Movies/Sun.avi" максимальным количеством памяти в 100Мб.
А смысл? Ну запросит процесс больше, ему откажут, он упадет. Толку-то?
Нужно разобраться в причинах повышенного потребления и возможных настройках приложения.
Здравствуйте, Аноним, Вы писали:
А>Подскажите, каким образом можно сказать системе, чтобы некоторый процесс был жестко ограничен по количеству потребляемой оперативной памяти? Т.е. нечто вроде такого (псевдобаш команда): memlimit 100M fplay ~/Movies/Sun.avi — ограничиваем процесс "fplay ~/Movies/Sun.avi" максимальным количеством памяти в 100Мб. А>Хочется решения, которое работает на возможно большем количестве *nix систем или хотя бы основанных на debian.
Именно реальной оперативной памяти? То есть RSS? Тогда в linux используй cgroups; запускать, соответственно, можно через cgexec.
Ну, конечно, в теории была команда ulimit -m, но она уже давно ничего не делает в linux, да и в других ОС тоже ведёт себя особенным образом.
Здравствуйте, wildwind, Вы писали:
W>Здравствуйте, Аноним, Вы писали:
А>>Подскажите, каким образом можно сказать системе, чтобы некоторый процесс был жестко ограничен по количеству потребляемой оперативной памяти? Т.е. нечто вроде такого (псевдобаш команда): memlimit 100M fplay ~/Movies/Sun.avi — ограничиваем процесс "fplay ~/Movies/Sun.avi" максимальным количеством памяти в 100Мб.
W>А смысл? Ну запросит процесс больше, ему откажут, он упадет. Толку-то?
Почему откажут-то? Выделят, но в swap-файле. Хотя, если и размер в файле подкачки ограничить, то упадёт, да.
Здравствуйте, wildwind, Вы писали:
w> А смысл? Ну запросит процесс больше, ему откажут, он упадет. Толку-то?
Толк иногда есть в том, чтобы не завалить всю систему целиком, падение процесса менее фатально падения системы, а вынос процесса в отдельную виртуалку невозможен.
Часто такое бывает в legacy системах — программеры чего-то когда-то давно наваяли, никто не знает как и зачем оно работает, никто не хочет разбираться (и вообще все боятся туда лезть), переконфигурации не поддается, но надо сделать, чтобы было стабильно. Да, плохо, неправильно, но это жизнь.
Здравствуйте, wildwind, Вы писали:
w> AB>Толк иногда есть в том, чтобы не завалить всю систему целиком w> Для этого есть oom killer, он сработает и без дополнительных телодвижений.
Не всегда он убивает нужное и часто уже слишком поздно.