Ustaw domyślną wartość nice dla danego użytkownika (limit.conf)


12

Czy ktoś mógłby mi powiedzieć, jak ustawić domyślną wartość nice(wyświetlaną przez top) użytkownika? Odkryłem, że /etc/security/limits.conf to miejsce, ale jeśli podam:

username_of_a_guy  -  nice  19
username_of_a_guy  soft  nice  19
username_of_a_guy  hard  nice  19

To nie działa (choć powinno, prawda?).

Pamiętaj, że od tego czasu uruchomiłem ponownie komputer.

Z góry bardzo dziękuję za wszelką pomoc. Używam niestabilnej wersji Debiana (aktualizacja).

Kontekst:

W mojej pracy mamy sieć lokalną: każdy ma własny komputer i każdy może założyć konto na czyimś komputerze, jeśli ktoś lubi. Ogólna zasada polega na tym, że jeśli pracujesz na komputerze innego użytkownika, proszę ładnie przetwarzaj swoje procesy ( nice 19).

Chciałbym ustawić domyślną niezłą wartość dla danego użytkownika na 19 raz na zawsze.


Odpowiedzi:


13

Uważam, że poprawny format to:

@users      -       priority        10
username    -       priority        19

To jest przykład ustawień, których używam w produkcji (oczywiście z prawdziwymi użytkownikami / grupami).

niceUstawienie jest określenie minimalnej wartości ładny (czyli maksymalny priorytet) ktoś może ustawić swój proces, a nie ich domyślnym priorytetem.


2
Przede wszystkim dziękuję za odpowiedź (również dziękuję, @mattdm). Wygląda na to, że ta metoda działa. Jednak nadal jestem zdezorientowany co do różnicy między „ładnym” a „priorytetem”: oba są wyświetlane jako „top”, ale wartość podana dla nice jest tą, którą muszę ustawić na priorytet. Wygląda mi to trochę dziwnie. Czy też większy priorytet (powiedzmy 39 zamiast 20) oznacza mniej ważny proces, jak w przypadku ładnego? Dziękuję Ci.
Alex

4
Ładnym priorytetem „NI” u góry jest to, co byłoby ustawione przez priorityustawienie limitów . Będzie to domyślny priorytet wszelkich procesów dla tego użytkownika / grupy, gdy się zalogują. Można ustawić tylko wartość z przedziału od -20 do 20. Wartość „PR” na górze jest rzeczywistym priorytetem harmonogramu, który jest określony przez kilka czynniki według harmonogramu jądra.
jsbillings 10.03.11

1
Ponadto tak, wyższy priorytet oznacza, że ​​rzadziej planowane jest uzyskanie cykli procesora.
jsbillings 10.03.11

1
Ok, wielkie dzięki za to ujednoznacznienie. BTW, nie próbowałem innych metod (obejmujących andlub cgroup), które mogłyby być lepsze w innych sytuacjach niż moje (potrzeba ciągłego sprawdzania lub zarządzania wieloma użytkownikami - co w moim przypadku jest trochę za dużo).
Alex

Hmmmm ... To działało dla jednego użytkownika, ale nie dla drugiego na mojej maszynie Ubuntu. Wrócę, jeśli uda mi się wyjaśnić, dlaczego. ;-)
Ken Sharp

3

Mogę potwierdzić, że to też nie działa w moim systemie. Dokumenty mówią „jądro 2.6.11 i nowsze”, a ja korzystam z Fedory rawhide z jądrem 2.6.38-rc6. Zastanawiam się, czy jest to zależne od harmonogramu i nie działa z wprowadzonym w 2.6.23 CFQ („Całkowicie uczciwym harmonogramem”).

Coś, co zadziała, to niemożliwa do wyszukania nazwa-z-okropnej nazwy and- auto-miły demon. Zobacz http://and.sourceforge.net/ . Jest to dostępne z Fedory yum install and, ale niestety nie wydaje się być w EPEL. I to w Debianie też: apt-get install and.

Jeśli jednak korzystasz z nowoczesnej dystrybucji, istnieje jeszcze lepszy sposób. Możesz użyć narzędzi libcgroup, aby skonfigurować grupę cgroup na poziomie jądra ograniczającą udziały procesora i automatycznie „sklasyfikować” procesy tego użytkownika do tej grupy. Dzięki temu można również nadać priorytet operacjom we / wy i ograniczyć użycie pamięci (w tym udział pamięci podręcznej dysku).


Zgadzam się, że korzystanie z cgroups to doskonały sposób na ograniczenie innych osób przed zrzucaniem wszystkich cykli procesora na twoim komputerze. Niestety, systemy, które obsługuję (RHEL5) nie mają jądra, które go obsługują, więc muszę trzymać się dostosowywania priorytetu. Po aktualizacji do RHEL6 jestem pewien, że będziemy mieli dość złożone ustawienia grup.
jsbillings 10.03.11
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.