Nowy01 Posted April 21, 2022 Report Share Posted April 21, 2022 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 More sharing options...
tomcio Posted April 21, 2022 Report Share Posted April 21, 2022 Domyślne nice dla danego użytkownika utworzysz w ten sposób: user - priority 34 Procesy użytkownika wówczas powinny domyślnie uruchamiać się z nice 14. Link to comment Share on other sites More sharing options...
Nowy01 Posted April 21, 2022 Author Report Share Posted April 21, 2022 Próbowałem to już, jednak zrobiłem dla liczb które podałeś. Gdy daję priority 34 to po reboocie dla prlimit -e mam wartości 0 w soft i hard. Link to comment Share on other sites More sharing options...
@sunrise Posted April 22, 2022 Report Share Posted April 22, 2022 @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. 1 Link to comment Share on other sites More sharing options...
tomcio Posted April 22, 2022 Report Share Posted April 22, 2022 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ł. 1 Link to comment Share on other sites More sharing options...
Nowy01 Posted April 22, 2022 Author Report Share Posted April 22, 2022 @sunrise bardzo dobrze wytłumaczone, fajnie również że pokazałeś błąd w tłumaczeniu, nie podejrzewałem czegoś takiego @tomcioTobie również dzięki za zainteresowanie tematem Podsumowując już wszystko śmiga, wielkie dzięki za pomoc Link to comment Share on other sites More sharing options...
@sunrise Posted April 22, 2022 Report Share Posted April 22, 2022 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now