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

Команда Ulimit в Linux


На одном компьютере может быть более одного пользователя. Доступные ресурсы системы могут быть опущены одним пользователем (вольно или невольно). Такая ситуация может создать проблемы для всех остальных пользователей системы. Чтобы этого избежать, нужно создать ограничения для пользователей, чтобы они получали только то, что им нужно. Команда Linux ulimit позволяет ограничить доступные ресурсы системы для разных пользователей. Эта команда может помочь в распределении ресурсов в соответствии с требованиями наиболее подходящим образом.

В этой статье мы предоставим вам несколько иллюстраций, чтобы понять реализацию команды ulimit в Linux.

Пример №1: Использование команды Ulimit для поиска доступных ресурсов для текущего пользователя

В этом примере будет спроецировано первое и основное использование команды ulimit. Мы узнаем статус доступности ресурсов Linux для текущего пользователя, вошедшего в систему.

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

omar@omar-VirtualBox:~$ ulimit

Нажмите клавишу Enter, чтобы найти вывод.

unlimited

Как видно из выходных данных, текущий пользователь, вошедший в систему, имеет неограниченный доступ к ресурсам.

Пример № 2. Определение доступности подробного ресурса для пользователя, вошедшего в систему в данный момент.

В приведенном выше примере мы находим лимит, доступный для ресурсов пользователя, но он не предоставляет нам подробной информации о доступных ресурсах.

Чтобы просмотреть подробную информацию обо всех ресурсах, доступных пользователю, нам нужно написать -a с командой ulimit. Это даст нам доступ ко всем ресурсам, доступным нынешним потребителям. Если вы хотите найти подробную информацию о доступных ресурсах для пользователя, отличного от текущего пользователя, вошедшего в систему, вы должны указать имя пользователя после флага -a. В настоящее время мы находим его для текущего пользователя, поэтому нам не нужно писать имя пользователя.

omar@omar-VirtualBox:~$ ulimit -a

После запуска команды нам будет предоставлен список ресурсов и доступный лимит для текущего пользователя Linux, вошедшего в систему. Кроме того, это облегчило нам работу с различными флагами, которые можно указать с помощью команды ulimit, чтобы найти предел для определенного ресурса.

real-time non-blocking time  (microseconds, -R) unlimited

core file size              (blocks, -c) 0

data seg size               (kbytes, -d) unlimited

scheduling priority                 (-e) 0

file size                   (blocks, -f) unlimited

pending signals                     (-i) 15207

max locked memory           (kbytes, -l) 502304

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) 15207

virtual memory              (kbytes, -v) unlimited

file locks                          (-x) unlimited

Мы будем практиковать некоторые из этих команд здесь.

Если вы хотите проверить доступный предел размера основного файла для текущего пользователя, вам необходимо ввести следующую команду:

omar@omar-VirtualBox:~$ ulimit -c

0

Результат говорит нам, что доступный предел размера основного файла для пользователя Linux равен 0.

Мы можем ограничить этот размер файла, указав предельное значение с помощью флага –c.

omar@omar-VirtualBox:~$ ulimit –c 10

Теперь доступный предел размера основного файла для текущего потребителя ограничен 10.

Для проверки размера сегмента данных используйте флаг –d с командой ulimit.

omar@omar-VirtualBox:~$ ulimit -d

unlimited

Теперь мы изменим этот предел.

omar@omar-VirtualBox:~$ ulimit –d 12

Мы найдем размер файла с флагом –f, размер канала с флагом –p и максимальный пользовательский процесс с –u, выполнив эти команды одну за другой на терминале.

Для проверки ограничения размера файла напишите команду:

omar@omar-VirtualBox:~$ ulimit -f

unlimited

Пользовательский лимит для размера канала можно проверить с помощью этой команды:

omar@omar-VirtualBox:~$ ulimit -p

8

Вы можете получить максимальный пользовательский процесс с помощью следующей команды:

omar@omar-VirtualBox:~$ ulimit -u

15207

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

Мягкие ограничения и жесткие ограничения в Linux

Ограничения в Linux делятся на две категории: мягкие ограничения и жесткие ограничения. Жесткие ограничения — это ограничения, которые устанавливаются только пользователем root для всех остальных пользователей. Принимая во внимание, что мягкие ограничения — это ограничения, которые могут быть изменены любым пользователем с помощью команды ulimit, но могут быть изменены только до максимального жесткого ограничения, установленного пользователем root.

Пример № 3: Использование команды ulimit для поиска жесткого ограничения

Мы можем отобразить значения жесткого ограничения для вошедшего в систему пользователя, используя флаг –H с командой ulimit. Для этого нам нужно написать в терминале следующую команду:

omar@omar-VirtualBox:~$ ulimit –H

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

unlimited

Мы также можем комбинировать вышеупомянутые флаги с флагом –H, чтобы найти предел для определенного ресурса. Здесь мы будем практиковать некоторые команды.

Чтобы найти жесткое ограничение на размер стека, нам нужно написать в терминале следующую команду:

omar@omar-VirtualBox:~$ ulimit –Hs

unlimited

Чтобы проверить жесткое ограничение размера трубы, объедините –H и –p.

omar@omar-VirtualBox:~$ ulimit –Hp

8

Жесткий предел максимального размера памяти может быть получен с помощью этой команды:

omar@omar-VirtualBox:~$ ulimit –Hm

unlimited

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

Пример № 4: Использование команды ulimit для поиска мягкого ограничения

Помимо проверки жестких ограничений для пользователя, вы также можете узнать и мягкие ограничения. Для проверки мягкого лимита следует использовать флаг –S с командой ulimit.

omar@omar-VirtualBox:~$ ulimit –S

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

unlimited

Точно так же с жестким ограничением мы также можем найти мягкое ограничение для определенного системного ресурса, указав соответствующий флаг в сочетании с флагом –S вместе с командой ulimit.

Чтобы получить мягкое ограничение для открытых файлов, мы выполним следующую команду:

omar@omar-VirtualBox:~$ ulimit –Sn

1024

Мягкий предел для ожидающих сигналов может быть получен с помощью этой команды:

omar@omar-VirtualBox:~$ ulimit –Si

15207

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

Заключение

Из этого руководства вы узнали, как использовать команду Linux ulimit. Мы обсудили основное использование команды ulimit, а также флаги, доступные для непосредственного поиска отдельного ресурса, доступного для текущего пользователя. Кроме того, в этом руководстве использовались два типа ограничений. Сочетание мягких и жестких ограничений с другими флагами объясняется практической реализацией в Linux.

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