W plikach usług systemowych można ustawić następujące opcje związane z planowaniem (na systemd.exec
stronie podręcznika popraw mnie, jeśli się mylę):
Nice Ustawia domyślny poziom nice (priorytet planowania) dla wykonywanych procesów. Przyjmuje liczbę całkowitą od -20 (najwyższy priorytet) do 19 (najniższy priorytet). Szczegóły w setpriority (2) .
Co to jest znajomy niezły poziom. Wygląda na to, że jego działanie jest nieco „podważone” ze względu na funkcję „automatycznego grupowania” ostatnich jąder Linuksa. Więc poniższe opcje mogą być tym, co naprawdę chciałbym ustawić, aby procesy zachowywały się ładnie na moim komputerze.
CPUSchedulingPolicy Ustawia zasady planowania CPU dla wykonywanych procesów. Pobiera jedną z pozostałych, partię, bezczynność, fifo lub rr. Aby uzyskać szczegółowe informacje, zobacz Sched_setscheduler (2) .
CPUSchedulingPriority Ustawia priorytet planowania CPU dla wykonywanych procesów. Dostępny zakres priorytetów zależy od wybranych zasad planowania CPU (patrz wyżej). W przypadku zasad planowania w czasie rzeczywistym można użyć liczby całkowitej od 1 (najniższy priorytet) do 99 (najwyższy priorytet). Aby uzyskać szczegółowe informacje, zobacz Sched_setscheduler (2) .
CPUSchedulingResetOnFork Pobiera argument boolowski. Jeśli jest to prawda, podwyższone priorytety i zasady planowania procesora zostaną zresetowane po rozwidleniu się wykonanych procesów, a zatem nie mogą przeciekać do procesów potomnych. Aby uzyskać szczegółowe informacje, zobacz Sched_setscheduler (2) . Domyślnie false.
Rozumiem ostatnią opcję. Na podstawie dwóch pierwszych wyjaśnień dowiaduję się, że mogę wybrać zasadę planowania, a następnie, biorąc pod uwagę tę zasadę, priorytet. Nie jest dla mnie do końca jasne, co powinienem wybrać do jakiego rodzaju zadań. Na przykład, czy bezpieczne jest wybranie „bezczynności” dla zadań tworzenia kopii zapasowych (stosunkowo intensywnie wykorzystujących procesor, ponieważ deduplikacja), czy też lepiej nadaje się inny?
Ogólnie rzecz biorąc, szukam zrozumiałego przeglądu każdej polityki, każdego z jej priorytetów i przydatności do określonych celów. Interesująca jest także interakcja z niezłym poziomem.
Oprócz planowania procesora istnieje szeregowanie we / wy. Myślę, że to odpowiada ionice
(popraw mnie, jeśli się mylę).
IOSchedulingClass Ustawia klasę planowania we / wy dla wykonywanych procesów. Przyjmuje liczbę całkowitą od 0 do 3 lub jeden z ciągów brak, w czasie rzeczywistym, najlepszym wysiłkiem lub bezczynności. Aby uzyskać szczegółowe informacje, patrz ioprio_set (2) .
IOSchedulingPriority Ustawia priorytet planowania we / wy dla wykonywanych procesów. Przyjmuje liczbę całkowitą od 0 (najwyższy priorytet) do 7 (najniższy priorytet). Dostępne priorytety zależą od wybranej klasy planowania we / wy (patrz wyżej). Aby uzyskać szczegółowe informacje, patrz ioprio_set (2) .
Widzimy tutaj taką samą strukturę jak w przypadku planowania CPU. Szukam również tego samego rodzaju informacji.
Dla wszystkich opcji „Planowania” strony, do których się odwołuje, nie są dla mnie wystarczająco jasne, głównie w tłumaczeniu rzeczy na nieco technicznie skłonny użytkownik pulpitu.
nice
wartość).