Команди Linux

Як встановити постійне граничне значення

Як встановити постійне граничне значення

У Linux ulimit - це вбудований інструмент для управління розподілом ресурсів на глобальному, груповому та користувацькому рівнях. Для такої багатокористувацької системи, як Linux, така функція майже першорядна. Це може запобігти споживанню небажаних системних ресурсів, таких як оперативна пам'ять та потужність процесора.

Перевірте, як постійно встановлювати граничне значення в Linux.

Граничне значення

Ulimit застосовує заздалегідь визначений ліміт, скільки ресурсів може використовувати користувач. Інструмент використовує певний конфігураційний файл як основний для призначення обмежувальних значень. Для більш тонкого управління краще відредагувати файл.

$ cat / etc / security / limit.конф


Існує два типи обмежень, які можна встановити: м’які та жорсткі обмеження. Краще пояснити ці типи на простому прикладі.

Скажімо, системний адміністратор хотів би, щоб певний користувач знаходився навколо певного значення. Тут користувач може перевищувати значення, якщо це необхідно, але не обмежуючись ним. У цьому випадку це буде м’яка межа. З іншого боку, якщо адміністратор хоче суворо встановити ліміт, то це буде жорсткий ліміт.

Використання ulimit

Ulimit - це інструмент командного рядка. Ось основна структура команди ulimit.

$ ulimit

Відобразити всі обмеження

Прапор “-a” перелічить усі параметри та конфігурації для конкретного користувача. Якщо жодного користувача не визначено, замість нього буде надруковано обмеження для поточного користувача.

$ ulimit -a

$ ulimit -a


Щоб відобразити м'які обмеження користувача, використовуйте прапорець “-S”.

$ ulimit -Sa


Щоб відобразити жорсткі обмеження користувача, використовуйте прапорець “-H”.

$ ulimit -Ha


Можна побачити межі певного процесу. Деталі містяться в наступному файлі. Зверніть увагу, що це унікальний файл для кожного із запущених процесів. Поміняйте поле PID на PID цільового процесу.

$ cat / proc // межі

Граничні параметри

Щоб змінити обмеження, вам слід вказати, який тип обмеження ви хочете визначити. Ось короткий список із усіма доступними параметрами, які ви можете змінити. Майже всі вони визначають максимальне значення кожного з параметрів.

  • b: Розмір буфера сокета
  • c: Розмір створених основних файлів
  • d: Розмір сегмента даних процесу
  • e: Пріоритет планування (значення “nice”)
  • f: Кількість файлів, створених оболонкою
  • i: Кількість очікуваних сигналів
  • l: Розмір для блокування в пам’яті
  • m: розмір встановленого резидента
  • n: Кількість дескрипторів відкритих файлів
  • p: Розмір буфера труби
  • q: Кількість байтів у чергах повідомлень POSIX
  • r: Пріоритет планування в реальному часі
  • s: розмір стека
  • t: час процесора (у секундах)
  • T: Кількість ниток
  • u: Кількість процесів, доступних користувачеві
  • v: Кількість віртуальної пам’яті, доступної для обробки
  • x: кількість блокувань файлів

Тимчасово змініть граничне значення

Можна тимчасово змінити значення ulimit для певного користувача. Зміна діятиме доти, поки користувач не вийде з системи, не закінчиться термін дії сеансу або перезавантаження системи. Тут я покажу приклад того, як встановити максимальний номер процесу для користувача.

Щоб змінити кількість доступних процесів на 12345, виконайте таку команду. Це накладе тимчасовий жорсткий ліміт на користувача.

$ ulimit -u

$ ulimit -u 12345


Перевірте жорсткий ліміт для перевірки.

$ ulimit -Ху

Постійно змінити граничне значення

Як вже згадувалося раніше, ulimit використовує файл конфігурації системи, який визначає значення ulimit за замовчуванням. Змінивши цей файл, ви можете остаточно змінити граничне значення для будь-якого користувача.

Відкрийте файл у вашому улюбленому текстовому редакторі. Зверніть увагу, що файл потрібно відкрити з дозволом адміністратора, щоб зміни були збережені.

$ sudo vim / etc / security / limit.конф


Тут записи у файлі мають наступну структуру.

$

Давайте швидко розберемо кожне з полів.

  • домен: імена користувачів, групи, діапазони GUID тощо.
  • тип: Тип ліміту (м’який / твердий)
  • item: Ресурс, який буде обмежений, наприклад, розмір ядра, nproc, розмір файлу тощо.
  • значення: Граничне значення

Ось короткий список усіх доступних предметів.

  • core: Обмежує розмір основного файлу (у КБ)
  • процесор: час процесора (у хв)
  • дані: Розмір даних (у КБ)
  • fsize: Розмір файлу (у КБ)
  • блокування: блокування файлів, яке може зберігати користувач
  • memlock: адресний простір, заблокований в пам'яті (у КБ)
  • nproc: Кількість процесорів
  • rtpio: Пріоритет у реальному часі
  • підпис: кількість сигналів, що очікують

Повний перелік доступних товарів можна переглянути на сторінці з обмеженнями.конф.

$ людина обмеження.конф


Наприклад, наступний запис обмежить кількість ядер ЦП, які користувач “Viktor” може використовувати до 2.

$ viktor hard nproc 2

Після редагування збережіть файл. Щоб зміни вступили в силу, користувачеві (жертвам), що зазнали впливу, потрібно вийти та повторно ввійти в систему. Залежно від того, як це реалізовано, може також знадобитися перезавантаження системи.

Заключні думки

Інструмент Ulimit пропонує потужний спосіб управління ресурсами. Це просто, але потужне в тому, що він робить. Що б ви не робили, переконайтесь, що ліміт, який ви збираєтесь застосувати, введено правильно. Якщо ви випробовуєте ці речі вперше, спробуйте спочатку протестувати їх на віртуальній машині.

Команда ulimit містить більше, ніж те, що я обговорював тут. Якщо ви хочете дізнатись більше, перевірте команду Linux ulimit.

Щасливих обчислень!

Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...
0 A.D. Tutorial
Out of the many strategy games out there, 0 A.D. manages to stand out as a comprehensive title and a very deep, tactical game despite being open sourc...
Unity3D Tutorial
Introduction to Unity 3D Unity 3D is a powerful game development engine. It is cross platform that is it allows you to create games for mobile, web, d...