как работает «ulimit -v» в ОС Linux?

Я хотел бы ограничить память, используемую процессом, запущенным через bash командой ulimit в Linux Мне было интересно, какой механизм ОС используется для поддержки ulimit. В частности, основано ли это на cgroups?

4 голоса | спросил morfys 18 +04002012-10-18T04:53:31+04:00312012bEurope/MoscowThu, 18 Oct 2012 04:53:31 +0400 2012, 04:53:31

3 ответа


0

Методами API Linux для получения и установки ограничений являются getrlimit (2) и setrlimit (2)

Пределы управляются в пространстве процесса. Дочерний процесс унаследует пределы своего родителя. Ограничения являются частью стандарта POSIX, поэтому их поддерживают все совместимые с POSIX операционные системы (Linux, BSD, OSX).

cgroups специфичны для Linux и даже не требуются при установке Linux. Я не уверен, возможно ли управлять лимитами с помощью cgroups, но это определенно было бы нестандартно.

ответил Swiss 18 +04002012-10-18T05:04:11+04:00312012bEurope/MoscowThu, 18 Oct 2012 05:04:11 +0400 2012, 05:04:11
0

"ulimit" - это в основном анахронизм. У вас не должно быть никаких реальных ограничений, если вам нужны ресурсы, и есть лучшие способы устанавливать кавычки, если вы хотите ограничить ресурсы.

Вот хороший обзор:

Несколько страниц руководства, на которые можно посмотреть:

ответил paulsm4 18 +04002012-10-18T05:16:56+04:00312012bEurope/MoscowThu, 18 Oct 2012 05:16:56 +0400 2012, 05:16:56
0

Я использую softlimit , часть daemontools.

Указывая, например, что-то вроде softlimit -m 1048576 nautilus, программа (nautilus) никогда не будет превышать 1 МБ использования памяти (что также приводит к сразу же в этом случае).

ответил mikebabcock 18 +04002012-10-18T05:25:02+04:00312012bEurope/MoscowThu, 18 Oct 2012 05:25:02 +0400 2012, 05:25:02

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132