Есть ли способ ограничить объем памяти, который может использовать конкретный процесс в Unix? [Дубликат]

    

У этого вопроса уже есть ответ:

    

Мне нужно протестировать процесс управления памятью.

  • У меня нет источника, поэтому мне нужно выполнить все тестирование со стороны ОС.
  • Я хочу сказать что-то вроде limitmemory 400k -p <pid>

Есть ли способ сделать это в unix? Любая общая утилита unix будет отличной.

33 голоса | спросил Lazer 31 PM00000040000004231 2010, 16:31:42

3 ответа


11

Я не очень уверен в этом, но вы также можете использовать группы для ограничения использования памяти . Преимущество групп состоит в том, что вы можете управлять уже запущенными процессами. Кстати, systemd будет использовать группы для управления системными службами.

К сожалению, я немного экспериментировал, и они, похоже, не очень хорошо работают в моей системе Fedora 13.

ответил Cristian Ciupitu 1 stEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 01 Sep 2010 06:13:03 +0400 2010, 06:13:03
8

В системах Linux с ядром> = 2.6.36 и util-linux> = 2.21 вы можете использовать prlimit команда для установки ограничений ресурса процесса:

prlimit --rss=400000 --pid <pid>
ответил Luca Gibelli 9 J000000Tuesday13 2013, 17:00:46
1

Существует функция setrlimit () , которая позволяет настроить пределы процесса в C. Напишите программу C для вызова setrlimit, затем выполните команду, которую вы хотите ограничить. setrlimit не может изменять пределы других процессов.

К счастью, кто-то уже написал что-то подобное. Его можно скачать из freshmeat . Я быстро посмотрел на исходный код, и, похоже, все в порядке. Используйте rlimit по своему усмотрению. Обратите внимание, что rlimit также не может изменять пределы других процессов.

Изменить: Жиль предложил хороший взлом с gdb: присоединитесь к процессу с помощью gdb, затем вызовите процесс setrlimit. Возможно, это решило проблему для ограничения уже запущенного процесса.

ответил nalply 31 PM000000110000004331 2010, 23:28:43

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

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

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