Ich bin auf der Suche nach dem Wert der Zeitscheibe (oder Quanten) von meiner Linux-kernel.
Gibt es eine /proc
- Datei, die setzen solche Informationen ?
(Oder) Ist es gut in der Linux-header-mein-Distributionen ?
(Oder) gibt es eine C-Funktion des Linux-API (vielleicht sysinfo) , setzen Sie diesen Wert ?
Vielen Dank im Voraus.
InformationsquelleAutor der Frage backlash | 2013-05-06
Den Standard-Linux-Zeitscheibe für Echtzeit-Prozesse ist definiert in den Linux-kernel als
RR_TIMESLICE
im include/linux/sched/rt.h.Beachten Sie, dass die tatsächlichen quantum zugeteilt, die für einen bestimmten Prozess kann unterschiedlich sein als dieser Wert:
Können Sie jedoch
sched_rr_get_interval()
zu bekommen, der SCHED_RR-Intervall für eine bestimmte Echtzeit-Prozess.InformationsquelleAutor der Antwort Vilhelm Gray
CFS (das ist der default-scheduler für Prozesse) hat keine Feste Zeitscheibe, ist es zur Laufzeit errechnet, je gezielter Latenz (
sysctl_sched_latency
) und die Anzahl der Laufenden Prozesse. Timeslice konnte nie kleiner sein als die minimale Granularität (sysctl_sched_min_granularity
).Timeslice wird immer zwischen
sysctl_sched_min_granularity
undsysctl_sched_latency
die standardmäßig auf 0,75 ms und 6 ms beziehungsweise und definiert in kernel/sched/fair.c.Aber die aktuelle Zeitscheibe nicht exportiert user-space.
InformationsquelleAutor der Antwort Alexey Shmalko
Gibt es einige Verwirrung in der akzeptierten Antwort zwischen
SCHED_OTHER
Prozesse (d.h., diejenigen, die unter der (Standard -) nicht-Echtzeit-round-robin-timesharing-Richtlinie) undSCHED_RR
Prozesse.Den
sched_latency_ns
undsched_min_granularity_ns
Dateien (die sind nur für debugging-Zwecke und nur sichtbar, wenn der kernel konfiguriert ist, mitCONFIG_SCHED_DEBUG
) beeinflussen die Planung derSCHED_OTHER
Prozesse. Wie bereits in Alexey Shmalko Antwort, die Zeitscheibe, die unter CFS ist nicht fixiert ist (und nicht exportiert user-space), und hängt von kernel-Parametern und Faktoren wie den Prozess nice-Wert.sched_rr_get_interval() gibt einen festen Wert, ist das quantum, das ein
SCHED_RR
Ablauf gewährleistet zu bekommen, es sei denn, es wird verdrängt oder blockiert. Auf der traditionellen Linux, dieSCHED_RR
quantum ist 0,1 Sekunden. Seit Linux 3.9, der Grenzwert ist einstellbar über die/proc/sys/kernel/sched_rr_timeslice_ms
Datei, wo das quantum ist, ausgedrückt als eine Millisekunde Wert, dessen Standardwert ist 100.InformationsquelleAutor der Antwort mtk
Googelte ich diese tickets über die gleichen Zweifel der Zeitscheibe von SCHED_RR in Linux.
Aber ich kann nicht klar beantworten, beide von hier und kernel-Quellcode.
Nach der weiteren überprüfung fand ich die wichtiger Punkt ist die "RR_TIMESLICE" ist die Standard-Zeitscheibe in jiffies, nicht Millisekunden! Also, die Standard-Zeitscheibe der SCHED_RR ist immer 100ms, egal welche HZ konfiguriert.
Gleiche wie der Wert von "/proc/sys/kernel/sched_rr_timeslice_ms", die input-Wert in Millisekundeaber es speichern und Ausgabe in jiffies! So, wenn Ihr CONFIG_HZ=100, werden Sie Sie finden:
Es ist bisschen verwirrt.
Hoffe das kann dir helfen, es zu verstehen!
InformationsquelleAutor der Antwort Shile