👈 Как ограничить время и использование памяти процессами в Linux |

👈 Как ограничить время и использование памяти процессами в Linux

Мануал

Скрипт тайм-аута – это полезная программа для мониторинга ресурсов, предназначенная для ограничения потребления времени и памяти процессами в Linux.

Он позволяет вам запускать программы под контролем и применять ограничения по времени и памяти, прерывая работу программы при нарушении этих параметров.

Никакой установки не требуется, просто выполните команду вместе с ее аргументами, используя программу timeout, и он будет отслеживать потребление памяти и время выполнения команды, прерывая процесс, если он выходит за пределы, и уведомляет вас с помощью предварительно определенного сообщения.

Для запуска этого скрипта у вас должен быть установлен Perl 5 в вашей системе Linux и смонтирована файловая система /proc.

Чтобы проверить установленную версию Perl в вашей системе Linux, выполните следующую команду.

Затем клонируйте репозиторий timeout в вашу систему с помощью команды git, затем перейдите в локальный репозиторий с помощью команды cd и вызовите его как обычную команду Linux.

$ cd ~/bin
$ git clone https://github.com/pshved/timeout.git
$ cd timeout

Давайте теперь посмотрим, как работает скрипт timeout.

Основное ограничение памяти (100 МБ виртуальной памяти):

В этом первом примере показано, как ограничить использование памяти процессом до 100 МБ виртуальной памяти, используя флаг -m.

По умолчанию для памяти используется единица измерения в килобайтах.

Здесь команда stress-ng запускает 4 стрессора виртуальной памяти (VMS), которые в совокупности используют 40% доступной памяти в течение 10 минут.

Таким образом, каждый стрессор использует 10% доступной памяти.

$ ./timeout -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Учитывая вывод команды timeout, описанной выше, рабочие процессы stress-ng были прерваны всего через 1,16 секунды.

Это связано с тем, что совокупное потребление памяти VMS (438660 килобайт) превышает допустимое использование виртуальной памяти для stress-ng и его дочерних процессов.

Основное ограничение времени процесса:

Чтобы включить ограничение времени процесса, используйте флаг -t, как показано далее.

$ ./timeout -t 4 stress-ng --vm 4 --vm-bytes 40% -t 10m
В приведенном выше примере, когда время CPU + SYS при нагрузке превышает заданное значение 4, рабочие процессы уничтожаются.

Ограничение времени и памяти процесса

Вы также можете одновременно ограничить память и время следующим образом.

$ ./timeout -t 4 -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Timeout также поддерживает некоторые дополнительные параметры, такие как –detect-hangups, который позволяет обнаружение зависания.

$ ./timeout --detect-hangups -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Вы можете контролировать лимит памяти RSS (resident set size), используя ключ –memlimit-rss или -s.

$ ./timeout -m 100000 -s  stress-ng --vm 4 --vm-bytes 40% -t 10m

Кроме того, чтобы вернуть код завершения или сигнал + 128 процесса, используйте параметр –confess или -c, как показано далее.

$ ./timeout -m 100000 -c  stress-ng --vm 4 --vm-bytes 40% -t 10m

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий