Skocz do zawartości

Reguły /etc/security/limits.conf [SOLVED]


Nowy01

Rekomendowane odpowiedzi

Hej, z góry przepraszam jeśli piszę w złym dziale. Celem poniższych operacji będzie ustawienie domyślnych wartości limitów liczby uruchamianych procesów, wartości priorytetu statycznego i priorytetu nice dla konkretnego użytkownika (nie działa mi to ostatnie).

Reguły tworzone  w  /etc/security/limits.conf .

[root@fedora ttyid:0 czw kwi 21 19:12:24 adam]# cat /etc/security/limits.conf | tail -4
adam	-	nproc	1400
adam	-	rtprio	4
adam	-	nice	14
# End of file
[root@fedora ttyid:0 czw kwi 21 19:12:28 adam]# reboot

Po wyłączeniu i włączeniu wszystkie reguły działają poza tą dla nice:

[adam@fedora ttyid:0 czw kwi 21 19:59:41 root]$ prlimit -e
RESOURCE DESCRIPTION               SOFT HARD UNITS
NICE     maksymalne dozwolone nice    6    6 
[adam@fedora ttyid:0 czw kwi 21 19:59:43 root]$ prlimit -r
RESOURCE DESCRIPTION                    SOFT HARD UNITS
RTPRIO   maksymalny priorytet real-time   4   4 
[adam@fedora ttyid:0 czw kwi 21 19:59:47 root]$ prlimit -u
RESOURCE DESCRIPTION                SOFT HARD UNITS
NPROC    maksymalna liczba procesów 1400 1400 procesy

Próbowałem już na wiele sposobów to poprawić, dodać kilka regół z rozdzieleniem na soft i hard, zrobić to jeszcze raz od początku dla innego użytkownika etc etc, patrzyłem też kilka wątków w internecie np:

https://unix.stackexchange.com/questions/8983/set-default-nice-value-for-a-given-user-limits-conf

https://www.thegeekdiary.com/understanding-etc-security-limits-conf-file-to-set-ulimit/

https://unix.stackexchange.com/questions/8983/set-default-nice-value-for-a-given-user-limits-conf

I pełno innych ale nie potrafię tego poprawić, dziwi mnie to, że tylko jedna z tych reguł ma losowe wartości, a reszta zachowuje się poprawnie. Jakieś sugestie?

 

Odnośnik do komentarza
Udostępnij na innych stronach

@Nowy01 Wszystko działa prawidłowo tylko, to nie działa tak jak Ci się wydaje :)

Nice może być z zakresu -20 do 19, gdzie -20 to najwyższy priorytet a 19 to najniższy. (jest 40 poziomów)

Zamiast zmieniać plik

/etc/security/limits.conf

lepiej utworzyć oddzielny plik w katalogu

/etc/security/limits.d/

np.

/etc/security/limits.d/00-nowy01-limits.conf

i w tym pliku dodawać swoje zmiany. W nim ustawiamy maksymalny limit np. ty ustawiłeś 14.

Polecenie prlimit -e wyświetla,  ile mamy dostępnych poziomów nice od najniższego priorytetu, włącznie z nim ( o ile możemy podnieść nice od najniższego poziomu  -1 , bo 0 oznacza, że nie możemy zmniejszać ), a nie jak sugeruje polskie tłumaczenie "maksymalne dozwolone nice"

$ LANG=C prlimit -e
RESOURCE DESCRIPTION                    SOFT HARD UNITS
NICE     max nice prio allowed to raise    6    6 

Jeżeli chcesz, aby domyślnie twoje procesy były uruchomione z nice równym 14 to musisz zastosować tak jak podał @tomcio wpis z priority, ale tu ważna uwaga, bo kolego popełnił drobny błąd. Nie 34 a 14 ponieważ PRIORYTET = NICE + 20, a nice domyślnie jest  0.

NICE i PRIORITY jest ze sobą powiązany jak widać.

Przykład:

nice     -20
priority  19

prlimit zwraca

RESOURCE DESCRIPTION                    SOFT HARD UNITS
NICE     max nice prio allowed to raise   40   40 

To oznacza, że nasze procesy uruchomione będą z NICE 19 i PRIO 39 i jest dostępnych 40 poziomów NICE i maksymalnie możemy podnieść NICE do -20

Natomiast jeżeli

nice      19
priority  19

prlimit zwróci

RESOURCE DESCRIPTION                    SOFT HARD UNITS
NICE     max nice prio allowed to raise    1    1 

To oznacza, że nasze procesy uruchomione będą z NICE 19 i PRIO 39 i jest dostępnych 1 poziom NICE (19)  i maksymalnie możemy podnieść NICE do 19

przy

nice      18
priority  19

 

prlimit zwróci

RESOURCE DESCRIPTION                    SOFT HARD UNITS
NICE     max nice prio allowed to raise    2    2 

To oznacza, że nasze procesy uruchomione będą z NICE 19 i PRIO 39 i są dostępne 2 poziomy NICE (18 i 19) i maksymalnie możemy podnieść NICE do 18

Mam nadzieję , że nic nie pokręciłem i jest to w miarę jasne.

  • Upvote 1
Odnośnik do komentarza
Udostępnij na innych stronach

16 minut temu, sunrise napisał:

kolego popełnił drobny błąd. Nie 34 a 14 ponieważ PRIORYTET = NICE + 20, a nice domyślnie jest  0.

Już miałem pisać sprostowanie. Pomyliło mi się z priority widocznym w top - tam to jest wyświetlane jako nice + 20. Czasem łatwo jest się pogubić w tych wszystkich cyferkach.

 

@sunrise świetnie wytłumaczyłeś. Ja bym tak nie potrafił.

  • Upvote 1
Odnośnik do komentarza
Udostępnij na innych stronach

  • Jonshu changed the title to Reguły /etc/security/limits.conf [SOLVED]

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...