Jump to content

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


Nowy01
 Share

Recommended Posts

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?

 

Link to comment
Share on other sites

@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
Link to comment
Share on other sites

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
Link to comment
Share on other sites

39 minut temu, Nowy01 napisał:

fajnie również że pokazałeś błąd w tłumaczeniu, nie podejrzewałem czegoś takiego

Czasem zdarzają się takie kwiatki, najgorzej bo oryginalny komunikat też według mnie nie jest najszczęśliwszy.

Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...