Ограничение потребления ресурсов процессов в Unix: различия между версиями
Vix (обсуждение | вклад) Нет описания правки |
Vix (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
== | ==Обзор== | ||
Запуск нескольких процессов в наших системах Linux требует от них совместного использования ресурсов, таких как центральный процессор, оперативная память и дисковое пространство. Чтобы избежать зависания ресурсоемких процессов, приводящих к зависанию системы, мы можем пожелать ограничить ресурсы, потребляемые другими процессами. В этом руководстве мы узнаем, как добавить ограничения в отношении процессора, оперативной памяти и дискового пространства. Мы будем использовать такие команды, как '''ulimit, cgroups, systemd-run, ionice,''' и '''nice'''. В некоторых случаях для выполнения этих команд потребуются разрешения суперпользователя. | Запуск нескольких процессов в наших системах Linux требует от них совместного использования ресурсов, таких как центральный процессор, оперативная память и дисковое пространство. Чтобы избежать зависания ресурсоемких процессов, приводящих к зависанию системы, мы можем пожелать ограничить ресурсы, потребляемые другими процессами. В этом руководстве мы узнаем, как добавить ограничения в отношении процессора, оперативной памяти и дискового пространства. Мы будем использовать такие команды, как '''ulimit, cgroups, systemd-run, ionice,''' и '''nice'''. В некоторых случаях для выполнения этих команд потребуются разрешения суперпользователя. | ||
== Использование systemd-run== | == Использование systemd-run== | ||
'''systemd-run''' - это системный менеджер и менеджер служб, доступный напрямую в большинстве дистрибутивов Linux. Он занимается запуском процессов, служб и демонов. Этот инструмент позволяет нам добавлять ограничения непосредственно к конкретному процессу, который мы хотим запустить. | '''systemd-run''' - это системный менеджер и менеджер служб, доступный напрямую в большинстве дистрибутивов Linux. Он занимается запуском процессов, служб и демонов. Этот инструмент позволяет нам добавлять ограничения непосредственно к конкретному процессу, который мы хотим запустить. | ||
* Например, мы можем запустить процесс с ограничением в 1 ГБ оперативной памяти: | |||
systemd-run --scope -p MemoryLimit=1000M ./myProcess.sh | |||
Здесь, '''myProcess.sh''' был запущен с помощью systemd-run и может обращаться только к указанной оперативной памяти. | |||
* Мы также можем использовать это, чтобы заставить процесс использовать только максимальный процент процессора: | |||
systemd-run --scope -p CPUQuota=10% ./myProcess.sh |
Версия от 17:24, 7 февраля 2025
Обзор
Запуск нескольких процессов в наших системах Linux требует от них совместного использования ресурсов, таких как центральный процессор, оперативная память и дисковое пространство. Чтобы избежать зависания ресурсоемких процессов, приводящих к зависанию системы, мы можем пожелать ограничить ресурсы, потребляемые другими процессами. В этом руководстве мы узнаем, как добавить ограничения в отношении процессора, оперативной памяти и дискового пространства. Мы будем использовать такие команды, как ulimit, cgroups, systemd-run, ionice, и nice. В некоторых случаях для выполнения этих команд потребуются разрешения суперпользователя.
Использование systemd-run
systemd-run - это системный менеджер и менеджер служб, доступный напрямую в большинстве дистрибутивов Linux. Он занимается запуском процессов, служб и демонов. Этот инструмент позволяет нам добавлять ограничения непосредственно к конкретному процессу, который мы хотим запустить.
- Например, мы можем запустить процесс с ограничением в 1 ГБ оперативной памяти:
systemd-run --scope -p MemoryLimit=1000M ./myProcess.sh
Здесь, myProcess.sh был запущен с помощью systemd-run и может обращаться только к указанной оперативной памяти.
- Мы также можем использовать это, чтобы заставить процесс использовать только максимальный процент процессора:
systemd-run --scope -p CPUQuota=10% ./myProcess.sh