Поиск по сайту:

Как использовать команду 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.

Если у вас есть какие-либо комментарии или вопросы, оставьте их ниже. Если у вас есть какие-либо предложения по темам, которые вы хотели бы рассмотреть, не стесняйтесь оставлять и их.

Статьи по данной тематике: