Wyszukiwanie w witrynie

Jak ustawić limity dla procesów uruchomionych przez użytkownika w systemie Linux


Jedną z piękności Linuksa jest to, że możesz kontrolować prawie wszystko. Daje to administratorowi systemu dużą kontrolę nad swoim systemem i lepsze wykorzystanie zasobów systemowych.

Chociaż niektórzy mogli nigdy o tym nie pomyśleć, ważne jest, aby wiedzieć, że w systemie Linux można ograniczyć ilość zasobów, z których może korzystać pojedynczy użytkownik i jak długo.

Przeczytaj także: Jak zwiększyć limit liczby otwartych plików w systemie Linux

W tym krótkim temacie pokażemy jak ograniczyć liczbę procesów uruchamianych przez użytkownika oraz jak sprawdzić aktualne limity i je zmodyfikować.

Zanim przejdziemy dalej, musimy zwrócić uwagę na dwie rzeczy:

  1. Aby modyfikować limity użytkowników, potrzebujesz dostępu root do swojego systemu
  2. Jeśli planujesz modyfikować te limity, musisz zachować szczególną ostrożność

Aby ustawić limity użytkowników, będziemy musieli edytować następujący plik:


/etc/security/limits.conf

Ten plik służy do zastosowania ulimit utworzonego przez pam_module.

Plik ma następującą składnię:

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

Tutaj zatrzymamy się, aby omówić każdą z opcji:

  • Domena – obejmuje nazwy użytkowników, grupy, zakresy guidów itp
  • Typ – limity miękkie i twarde
  • Element – element, który będzie ograniczony – rozmiar rdzenia, rozmiar pliku, nppro itp
  • Wartość – jest to wartość dla danego limitu

Dobrym przykładem limitu jest:

@student          hard           nproc                20

Powyższa linia ustala sztywny limit maksymalnie 20 procesów w grupie „student”.

Jeśli chcesz zobaczyć ograniczenia określonego procesu, możesz po prostu „kotnąć” plik ograniczeń w ten sposób:


cat /proc/PID/limits

Gdzie PID to rzeczywisty identyfikator procesu, możesz go znaleźć za pomocą polecenia ps. Aby uzyskać bardziej szczegółowe wyjaśnienia, przeczytaj nasz artykuł, który mówi: Znajdź działające procesy systemu Linux i ustaw limity procesów na poziom użytkownika

Oto przykład:


cat /proc/2497/limits
Przykładowe wyjście

Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             32042                32042                processes 
Max open files            1024                 4096                 files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       32042                32042                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us   

Wszystkie linie są w zasadzie oczywiste. Jeśli jednak chcesz znaleźć więcej ustawień, które możesz wprowadzić w pliku limits.conf, możesz zapoznać się z instrukcją dostępną tutaj.

Jeśli masz jakieś pytania lub uwagi, nie wahaj się przesłać ich w sekcji komentarzy poniżej.