Sobes.tech
Middle

Шумо дар бораи ulimits чӣ медонед ва чӣ гуна онҳоро дар системаҳои Linux истифода мебаред?

sobes.tech AI

Ҷавоб аз AI

Ulimits (ҳаддҳо барои корбарон) — ин маҳдудиятҳо дар истифодаи захираҳо аз ҷониби равандҳои системаи оператсионӣ Linux мебошанд. Онҳо кӯмак мекунанд, ки аз тамом шудани захираҳои системаи аз ҷониби як раванд пешгирӣ кунанд ва устувориро таъмин кунанд.

Захираҳои асосие, ки бо ёрии ulimits маҳдуд кардан мумкин аст:

  • Вақти CPU (сония): Вақти максималии коркарди CPU барои раванд.
  • Ҳаҷми файл (блокҳо): Ҳаҷми максималии файли, ки корбар метавонад эҷод кунад.
  • Ҳаҷми сегменти маълумот (kbytes): Ҳаҷми максималии сегменти маълумоти раванд.
  • Ҳаҷми стеки (kbytes): Ҳаҷми максималии стеки раванд.
  • Ҳаҷми файл барои ядро (блокҳо): Ҳаҷми максималии dump-и ядро.
  • Ҳаҷми маҷмӯаи резидентӣ (kbytes): Ҳаҷми максималии хотираи резидентии раванд (бештар дастгирӣ намешавад ё танҳо маҳдудияти "мягкий" дорад).
  • Шумори равандҳо: Шумори максималии равандҳо, ки корбар метавонад эҷод кунад.
  • Файлҳои кушод: Шумори максималии файлҳо, ки раванд метавонад кушад.
  • Хотираи бастабандӣ (kbytes): Ҳаҷми максималии хотира, ки метавонад дар RAM баста шавад.
  • Шумори максималии равандҳо барои корбар: Шумори максималии равандҳо, ки барои корбар муайян шудааст (ID-и корбарро дар назар намегирад при ҳисоб).
  • Ҳолати интизорӣ сигнали: Шумори максималии сигналиҳо, ки метавонанд дар навбат интизор бошанд барои раванд.
  • Ҳаҷми навбатҳои паёмҳо (байт): Ҳаҷми максималии навбатҳои паёмҳои POSIX.
  • Преоритети дар вақти воқеӣ: Максимум приоритети дар вақти воқеӣ, ки метавонад муқаррар карда шавад.
  • Приоритети Nice: Максимум арзиши "мягкий" приоритет.
  • Ҳаҷми хотираи дар вақти воқеӣ (kbytes): Максимум ҳаҷми хотира, ки барои вазифаҳои дар вақти воқеӣ баста шудааст.

Ulimits дар ду навъ ҳастанд:

  • Мягкий маҳдудият: Маҳдудияти ҳозира, ки фаъолона татбиқ мешавад. Корбар ё раванд метавонад Мягкий маҳдудиятро зиёд кунад, аммо на аз Sсрӣ.
  • Қавӣ маҳдудият: Максимум маҳдудияти имконпазир, ки аз ҷониби администратор муқаррар шудааст. Танҳо суперпайваст (root) метавонад Қавӣ маҳдудиятро зиёд кунад.

Намоиши ulimits-и ҳозира:

Командаро ulimit дар муҳити командӣ истифода баред (масалан, bash).

# Намоиши ҳамаи маҳдудиятҳои мягкий
ulimit -a

# Намоиши маҳдудияти қавӣ барои файлҳои кушод
ulimit -Hn

Танзимоти ulimits:

Ulimits метавонанд муваққатӣ барои сессия ё равандҳои ҳозира танзим шаванд, ё доимӣ.

Танзими муваққатӣ:

Командаро ulimit дар муҳити командӣ истифода баред. Ин танҳо барои shell-и ҳозира ва равандҳои кӯдакии он амал мекунад.

# Танзими мягкий маҳдудият барои файлҳои кушод ба 4096
ulimit -Sn 4096

# Танзими қавӣ маҳдудият барои шумораи равандҳо ба 100
ulimit -Hu 100

Танзими доимӣ:

Файли /etc/security/limits.conf ё файлиҳо дар директорияи /etc/security/limits.d/-ро таҳрир кунед. Ин усул ҳуқуқҳои суперпайвастро талаб мекунад ва дар вақти вуруд ба система (аз тариқи PAM) татбиқ мешавад.

Формати файли /etc/security/limits.conf:

# <домейн>  <навъ>  <мавзӯъ>  <қимат>
# Домейн метавонад бошад: user (@group), group (@group), wildcard (*)
# Навъ метавонад бошад: soft, hard, - (ҳама)
# Мавзӯъ - навъи захира (nofile, nproc ва ғайра)
# Қимат - маҳдудият

*       soft    nofile  4096       # Ҳама корбарон, soft limit барои файлҳои кушод 4096
@mygroup hard    nproc   256        # Гурӯҳи mygroup, hard limit барои равандҳо 256
myuser  -       stack   8192       # Корбар myuser, ҳарду маҳдудият барои stack 8192 kB

Пас аз тағирот дар /etc/security/limits.conf, лозим аст, ки аз нав ворид шавед, то тағирот дар амал шаванд.

Ulimits одатан барои:

  • Пешгирии "fork bombs" (равандҳое, ки бисёр фарзандро эҷод мекунанд).
  • Маҳдуд кардани хотирае, ки равандҳо истифода мебаранд, барои пешгирӣ аз ҳолатҳои "out of memory".
  • Маҳдуд кардани шумораи файлҳои кушод, ки барои барномаҳои шабакавӣ ва базаҳои дода муҳим аст.
  • Назорат дар истифодаи захираҳои CPU аз ҷониби барномаҳои пуриқтидор.

Истифодаи ulimits қисми муҳими тақвияти амнияти системаи ва таъмин кардани устуворӣ ва пешгӯии кори барномаҳо дар муҳити истеҳсолӣ мебошад.