Как использовать команду Ulimit в Linux [ресурс системы управления]
Ulimit — это встроенная команда оболочки, предназначенная для отображения, распределения и ограничения ресурсов. Узнайте, как использовать команду ulimit в Linux.
В этом уроке для начинающих вы узнаете о команде ulimit в Linux. Вы узнаете, как использовать его для управления распределением системных ресурсов.
Что такое ulimit в Linux?
Ulimit — это встроенная команда оболочки, предназначенная для отображения, распределения и ограничения ресурсов. Для любой системы важно регулировать эти виды контроля.
Этот тип контроля может применяться на глобальном, групповом и пользовательском уровнях. Помимо обеспечения плавной обработки задач, он предотвращает использование нежелательными процессами системных ресурсов, таких как оперативная память и мощность процессора.
Ulimit связан с файлом конфигурации безопасности. Ваше точное местоположение может отличаться, но обычно это что-то вроде /etc/security/limits.conf
. Ulimit позволяет нам быстро редактировать эту конфигурацию.
Мягкие и жесткие ограничения
Как пользователь, вы можете изменить настройки ulimit.
Вы можете задаться вопросом, зачем вообще устанавливать ограничение, если пользователь может его настроить. Здесь в игру вступают мягкие и жесткие ограничения.
Таким образом, с точки зрения администратора вы можете предпочесть, чтобы ваш пользователь наводил курсор на определенное значение. Это будет ваш мягкий лимит (скажем, 25).
Затем вы можете установить жесткий лимит, который этот пользователь не сможет превысить (50). Пользователю будет разрешено увеличить свой лимит с 25 до 50.
Использование ulimit в Linux
Вот синтаксис команды ulimit:
ulimit <options>
Отображать все лимиты для любого пользователя
Вы можете отобразить все виды ограничений для указанного пользователя следующим образом:
ulimit -a user_name
Флаг -a
отобразит все параметры и их конфигурацию для вашего конкретного имени пользователя.
Если вы опустите user_name, вам будут показаны ограничения. Позвольте мне показать вам ограничения, установленные для меня по умолчанию:
christopher@linux-handbook:~$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 31503
max locked memory (kbytes, -l) 65536
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 31503
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Конечно, ваши значения по умолчанию могут отличаться от моих. В этом представлении отображается описание, назначенный флаг (который можно использовать для изменения ограничений) и конфигурация.
Отображение жестких и мягких ограничений
Также можно увидеть любой из этих пределов с помощью флажка.
Чтобы отобразить мягкие ограничения, используйте опцию -S:
ulimit -S
Чтобы отобразить жесткие ограничения, используйте опцию -H:
ulimit -H
Полезнее комбинировать их с конкретными флагами, указанными выше. Итак, если вы хотите проверить жесткое ограничение на максимальное количество пользовательских процессов, введите:
christopher@linux-handbook:~$ ulimit -Hu
31503
Изменить лимиты (временно)
Теперь давайте изменим это значение на 31500 в демонстрационных целях и снова проверим жесткий предел.
christopher@linux-handbook:~$ ulimit -u 31500
christopher@linux-handbook:~$ ulimit -Hu
31500
Стоит отметить, что любые изменения, разрешенные вашими привилегиями, будут записаны только временно и повлияют на вашу текущую оболочку.
Чтобы подтвердить это, я вышел из оболочки, создал новый терминал и получил исходное значение по умолчанию.
christopher@linux-handbook:~$ ulimit -Hu
31503
В следующем разделе показано, как сделать изменения постоянными.
Внесение постоянных изменений в ulimit
Как я упоминал в начале статьи, ulimit управляется файлом /etc/security/limits.conf. Если вы хотите внести какие-либо постоянные изменения в ограничения любого пользователя, вам придется внести изменения в файл безопасности от имени пользователя root.
При редактировании вам необходимо включить эти четыре элемента:
<domain> <type> <item> <value>
Вот текст, который я добавил в файл, чтобы установить жесткое ограничение на количество процессов для пользователя christoper (то есть моей собственной учетной записи):
christopher hard nproc 2000
Имейте в виду, что лучше не включать учетную запись root, если вы полностью не осознаете потенциальные последствия. Я сделал это на виртуальной машине, поэтому вам не придется делать это самостоятельно.
christopher@linux-handbook:~$ su
Password:
root@linux-handbook:/home/christopher# nano /etc/security/limits.conf
root@linux-handbook:/home/christopher# exit
exit
christopher@linux-handbook:~$ ulimit -u
20000
Как видите, лимит для «christopher» был изменен на 20000.
Как узнать, какое ключевое слово использовать для редактирования файла /etc/security/limits.conf? Итак, вот таблица, которая включает возможные ключевые слова предметов и их описания:
- core
ограничивает размер основного файла (КБ)
- data
максимальный размер данных (КБ)
- fsize
максимальный размер файла (КБ)
- memlock
максимальное заблокированное адресное пространство в памяти (КБ)
- nofile
максимальное количество открытых файловых дескрипторов
- rss
максимальный размер резидентного набора (КБ)
- stack
максимальный размер стека (КБ)
- cpu
максимальное время процессора (МИН)
- nproc
максимальное количество процессов
- as
предел адресного пространства (КБ)
- maxlogins
максимальное количество входов для этого пользователя
- maxsyslogins
максимальное количество входов в систему
- priority
приоритет запуска пользовательского процесса с
- locks
максимальное количество блокировок файлов, которые пользователь может удерживать
- sigpending
максимальное количество ожидающих сигналов
- msgqueue
– максимальный объем памяти, используемый очередями сообщений POSIX (в байтах)
- nice
максимальный приятный приоритет, разрешенный для повышения до значений: [-20, 19]
- rtprio
максимальный приоритет в реальном времени
- chroot
изменить корень на каталог (специфично для Debian)
- hard
жесткий предел
- soft
мягкий предел
- –
как жесткий, так и мягкий лимит
Изменить ulimit для групп
Изменение групповой политики очень похоже на то, что вы видели в предыдущем разделе, но перед именем группы вы должны включить символ @
.
Вот пример, в котором я установил максимальное количество входов для группы учащихся — 4, отредактировав файл /etc/security/limits.conf:
@student - maxlogins 4
Заключение
Надеюсь, вам понравился этот краткий обзор команды ulimit Linux.
Если у вас есть какие-либо комментарии или вопросы, оставьте их ниже. Если у вас есть какие-либо предложения по темам, которые вы хотели бы рассмотреть, не стесняйтесь оставлять и их.