GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie erkennt man die Zeitscheibe des Linux-Schedulers?

CFS (der Standard-Scheduler für Prozesse) hat keine feste Zeitscheibe, sie wird zur Laufzeit in Abhängigkeit von der angestrebten Latenz berechnet (sysctl_sched_latency ) und Anzahl der laufenden Prozesse. Timeslice konnte nie kleiner als die minimale Granularität sein (sysctl_sched_min_granularity ).

Timeslice liegt immer zwischen sysctl_sched_min_granularity und sysctl_sched_latency , die standardmäßig 0,75 ms bzw. 6 ms sind und in kernel/sched/fair.c definiert sind.

Aber die tatsächliche Zeitscheibe wird nicht in den Benutzerbereich exportiert.


Das für einen bestimmten Prozess zugewiesene Quantum kann variieren:

Sie können "Slice" optimieren, indem Sie sched_latency_ns anpassen und sched_min_granularity_ns , aber beachten Sie, dass "Slice" kein festes Quantum ist. Beachten Sie auch, dass CFS-Präemptionsentscheidungen auf dem momentanen Status basieren. Eine Aufgabe hat möglicherweise ein volles (variables) „Slice“ CPU-Zeit erhalten, aber die Vorrangigkeit wird nur ausgelöst, wenn eine mehr verdiente Aufgabe verfügbar ist, sodass ein „Slice“ nicht die „maximale ununterbrochene CPU-Zeit“ ist, die Sie vielleicht erwarten .. aber es ist etwas ähnlich.

Dies liegt daran, dass der Completely Fair Scheduler, der standardmäßige Linux-Scheduler, einem Prozess statt einer festen Zeitscheibe einen Teil des Prozessors zuweist. Das bedeutet, dass die Zeitscheibe für jeden Prozess proportional zur aktuellen Last ist und mit dem Prioritätswert des Prozesses gewichtet wird.

Für spezielle Echtzeitprozesse, die SCHED_RR verwenden, ist die Standardzeitscheibe im Linux-Kernel als RR_TIMESLICE definiert in include/linux/sched/rt.h.

/*
 * default timeslice is 100 msecs (used only for SCHED_RR tasks).
 * Timeslices get refilled after they expire.
 */
#define RR_TIMESLICE            (100 * HZ / 1000)

Sie können sched_rr_get_interval() verwenden um das SCHED_RR-Intervall für einen bestimmten SCHED_RR-Prozess zu erhalten.


Linux
  1. Wie ich Vim als meinen Standardeditor unter Linux konfiguriere

  2. So stellen oder ändern Sie die Zeitzone in Linux

  3. Linux – Wie finde ich das Erstellungsdatum der Datei?

  4. Linux – Woher wissen Sie, wofür Sie in Dmesg grep müssen?

  5. So finden Sie die Standard-Gateway-IP in Linux

So stellen oder ändern Sie die Zeitzone in Linux

So ändern Sie die Standard-Sudo-Protokolldatei in Linux

So ändern Sie die Standard-Shell im Linux-System

So finden Sie das Installationsdatum und die Uhrzeit des Linux-Betriebssystems

So stellen Sie Datum und Uhrzeit unter Linux ein

Wie man die Gruppen eines Linux-Benutzers kennt