Поэтами рождаются, ораторами становятся (Цицерон).

5 мин для чтенияУправление ресурсами системы с помощью команды Ulimit

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
25 апреля 2020
Управление ресурсами системы с помощью команды Ulimit
В этой статье для начинающих вы узнаете о команде 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, он покажет ограничения для вас. Позвольте мне показать вам ограничения, установленные для меня по умолчанию:

destroyer@andreyex:~$ 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) 33453
max locked memory       (kbytes, -l) 65178
max memory size         (kbytes, -m) unlimited
open files                      (-n) 512
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 451100
real-time priority              (-r) 0
stack size              (kbytes, -s) 7948
cpu time               (seconds, -t) unlimited
max user processes              (-u) 33418
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

 

Ваши значения по умолчанию могут отличаться от наших, конечно. В этом представлении отображается описание, назначенный флаг (который можно использовать для изменения ограничений) и конфигурация.

 

Отображать жесткие и мягкие ограничения

Также возможно видеть любой из этих соответствующих пределов с флагом.

Чтобы отобразить мягкие ограничения, используйте опцию -S:

ulimit -S

 

Для отображения жестких ограничений используйте опцию -H:

ulimit -H

 

Полезнее сочетать их с конкретными флагами сверху. Поэтому, если вы хотите проверить жесткое ограничение на максимальное количество пользовательских процессов, введите:

destroyer@andreyex:~$ ulimit -Hu
31503

 

Изменить ограничения (временно)

Теперь давайте изменим это значение на 31500 для демонстрационных целей и еще раз проверим жесткий лимит.

destroyer@andreyex:~$ ulimit -u 31500
destroyer@andreyex:~$ ulimit -Hu
31500

 

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

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

destroyer@andreyex:~$ ulimit -Hu
31503

 

В следующем разделе показано, как сделать изменения постоянными.

 

Внесение постоянных изменений в ulimit

Как мы упоминали в начале статьи, ulimit регулируется /etc/security/limits.conf. Если вы хотите внести какие-либо постоянные изменения в ограничения любого пользователя, вам нужно будет внести изменения в файл безопасности как root.

При редактировании вам необходимо включить эти четыре элемента:

<domain> <type> <item> <value>

 

Вот текст, который мы добавили к файлу, чтобы установить жесткое ограничение на количество процессов для пользователя destroyer (т.е. нашей учетной записи):

destroyer    hard    nproc   2000

 

Помните, что рекомендуется не включать корневую учетную запись, если вы не полностью осведомлены о возможных последствиях. Мы сделали это на виртуальной машине, поэтому вам не нужно делать это самостоятельно.

destroyer@andreyex:~$ su
Password: 
root@andreyex:/home/destroyer# nano /etc/security/limits.conf 
root@andreyex:/home/destroyer# exit
exit
destroyer@andreyex:~$ ulimit -u
20000

 

Как видите, предел для «destroyer» был изменен на 20000.

Как узнать, какое ключевое слово использовать для редактирования файла /etc/security/limits.conf? Ну, вот таблица, которая включает в себя возможные ключевые слова элемента и их описания:

Ключевое слово предметаОписание
coreограничивает размер файла ядра (КБ)
dataмаксимальный размер данных (КБ)
fsizeмаксимальный размер файла (КБ)
memlockМаксимальное адресное пространство заблокировано в памяти (КБ)
nofileмаксимальное количество открытых файловых дескрипторов
rssмаксимальный размер резидентного набора (КБ)
stackмаксимальный размер стека (КБ)
cpuмаксимальное время процессора (MIN)
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

 

Вывод

Надеюсь, вам понравился этот краткий учебник по Linux-команде ulimit.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читайте также

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close