„ulimit” jest interesującym poleceniem powłoki Linuksa, które może ustawić lub zgłosić limit zasobów bieżącego użytkownika.

Oczywiście, z powodu swojej natury, praca z „ulimit” wymaga dostępu administratora (przy zmianie wartości). Co więcej, będzie on działał tylko na systemach, które pozwalają na kontrolę poprzez powłokę. Bez dalszych ceregieli, rozpocznijmy pracę z „ulimit”!

Zapal terminal i uruchom następującą komendę.

which ulimit

To pokazuje błąd, prawda? Dlaczego? Ponieważ „ulimit” nie jest oddzielną binarką. Jest wbudowana w samą powłokę.

Podstawowe użycie

Po prostu uruchom polecenie samo w sobie.

ulimit

Jak sugeruje wyjście, bieżący użytkownik ma „nieograniczoną” ilość zasobów, do których może mieć dostęp. Zasadniczo oznacza to, że bieżący użytkownik może zużywać wszystkie zasoby obsługiwane przez bieżący system.

Aby uzyskać szczegółowy raport, dodaj flagę „-a” na końcu. Spowoduje to wydrukowanie wszystkich ograniczeń zasobów dla bieżącego użytkownika.

ulimit -a

Uwaga: Istnieją 2 rodzaje ograniczeń zasobów: „twarde” i „miękkie”. Twardy limit zasobów definiuje fizyczny limit, który może osiągnąć użytkownik. Miękki” limit zasobów jest zarządzalny przez użytkownika. Jego wartość może wzrosnąć do „twardego” limitu.

Zasoby systemowe są zdefiniowane w pliku konfiguracyjnym znajdującym się pod adresem „/etc/security/limits.conf”. „ulimit” po wywołaniu zgłosi te wartości.

cat /etc/security/limits.conf

Sprawdzanie różnych limitów użytkownika

A może by tak wyświetlić poszczególne parametry? Następnie wywołaj „ulimit” z odpowiednimi parametrami.

Uwaga: Nie wszystkie z tych poleceń będą działać, ponieważ nie każdy system posiada te funkcje.

Aby sprawdzić wartość max „core file size”, użyj flagi „-c”. Wynik zostanie wyświetlony w blokach.

ulimit -c

Aby sprawdzić wartość max „rozmiar segmentu danych” (w kilobajtach), należy użyć flagi „-d”.

ulimit -d

W harmonogramie priorytet ma znaczenie. Sprawdź maksymalny priorytet planowania bieżącego użytkownika za pomocą flagi „-e”.

ulimit -e

Aby sprawdzić maksymalny rozmiar stosu bieżącego użytkownika, użyj flagi „-s”.

ulimit -s

Aby sprawdzić maksymalną liczbę procesów użytkownika, należy użyć flagi „-u”.

ulimit -u

Dla uzyskania maksymalnej liczby wątków należy użyć flagi „-T”.

ulimit -T

Dla uzyskania rozmiaru pamięci wirtualnej należy użyć następującej.

ulimit -v

Sprawdźmy rozmiar bufora gniazda!

ulimit -b

Ten jest interesujący. Poniższe polecenie informuje o czasie, przez jaki każdy proces może działać.

=ulimit -t

Kolejną interesującą częścią ekosystemu Linuksa są deskryptory plików. Aby sprawdzić, ile deskryptorów plików może mieć proces, uruchom poniższe polecenie.

ulimit -n

Aby poznać pełną listę flag „ulimit”, sprawdź stronę pomocy „ulimit”.

ulimit –help

Ustawianie wartości

Do tej pory widzieliśmy, jak sprawdzić wartości limitów zasobów bieżącego systemu. Teraz nadszedł czas, aby zobaczyć, jak ręcznie zmodyfikować te wartości.

Uwaga: Aby zmienić „twardy” limit, będzie wymagany dostęp administratora, tj. uprawnienia „root”. Upewnij się, że nie zepsujesz tych rzeczy!

Wspomnieliśmy o pliku „limits.conf”, prawda? To jest rdzeń, który DEFINIUJE wszystkie limity, które będą miały zastosowanie do użytkowników.

sudo vim /etc/security/limits.conf

Jak pokazano w pliku, każdy wpis musi mieć następującą strukturę.

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

Część „domain” może być dowolną z tych wartości.

  • Konkretny użytkownik
  • Grupa
  • Wildcard (* i %)

Część „type” dopuszcza następujące wartości.

  • „soft” (dla wprowadzenia miękkich ograniczeń)
  • „hard” (dla wprowadzenia twardych ograniczeń)

Następnie część „item”. Lista dostępnych opcji jest całkiem długa! Oto kilka ciekawych z nich.

  • core: Rozmiar pliku core (w KB).
  • data: Maksymalny rozmiar danych (w KB)
  • fsize: Maksymalny rozmiar pliku (w KB).
  • memlock: Max przestrzeń adresowa zablokowana w pamięci (w KB).
  • nofile: Max liczba deskryptorów plików
  • stack: Max rozmiar stosu (w KB).
  • cpu: Maksymalny czas pracy procesora (w MIN).
  • maxlogins: Maksymalna liczba logowań dla bieżącego użytkownika/grupy
  • priorytet: Ustawienie priorytetu procesów użytkownika
  • rtprio: Maksymalny priorytet w czasie rzeczywistym.

Jako pole „wartość”, umieść wartość całkowitą. Zauważ, że jednostka każdego pola jest związana z wartością części „item”.

Zmiany wejdą w życie po wyjściu i ponownym zalogowaniu się na powiązane konto użytkownika.

Dogłębne informacje na temat pliku konfiguracyjnego „limits.conf” można znaleźć na jego stronie man.

man limits.conf

Ostatnie przemyślenia

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.