Messen wir die Wartezeit der Ausführungswarteschlange des CPU-gebundenen SCHED_FIFO-Prozesses, der von [Prozess durch Angabe der Planungsrichtlinie unter Linux starten] gestartet wurde (https://qiita.com/yamato_karino/items/892443eabf1a84192849).
Ich habe auf die folgende Seite verwiesen, um die Wartezeit für die Warteschlange auszuführen. https://yohei-a.hatenablog.jp/entry/20150806/1438869775
Das Ergebnis des Abrufens von / proc / PID / schedstat des CPU-gebundenen FIFO-Prozesses nach 1 Sekunde. Die zweite Spalte enthält die Wartezeit für die Warteschlange. Einheit Nanosekunden.
- time spent on the cpu
- time spent waiting on a runqueue
of timeslices run on this cpu
(Von https://www.kernel.org/doc/html/latest/scheduler/sched-stats.html)
[ec2-user@ip-172-21-0-185 ~]$ sudo cat /proc/27629/schedstat ; sleep 1; sudo cat /proc/27629/schedstat
1585551572096 83397623426 1669
1586504089039 83449107507 1670
Es sind ungefähr 51 Millisekunden. Tritt der Kontextwechsel nur einmal auf, da die Zeitscheibe in der 3. Spalte 1 ist? Es scheint nur ein Echtzeitprozess zu sein.
Unten sehen Sie das Ergebnis des Abrufens von / proc / PID / schedstat des CPU-gebundenen SCHED_OTHER-Prozesses, der nach 1 Sekunde gleichzeitig ausgeführt wurde.
[ec2-user@ip-172-21-0-185 ~]$ sudo cat /proc/28585/schedstat ; sleep 1; sudo cat /proc/28585/schedstat
28229659566 570788962732 8601
28291651447 571746971282 8620
Über 958 Millisekunden. Sie können sehen, dass sich der SCHED_FIFO-Prozess fast die ganze Zeit in der Run-Warteschlange befand.
Als ich den SCHED_OTHER-Prozess abbrach und die Wartezeit der Ausführungswarteschlange von SCHED_FIFO ohne einen anderen CPU-intensiven Prozess maß, betrug das Ergebnis etwa 50 Millisekunden. (Es gibt kein Ergebnis der Befehlsausgabe) Das bedeutet, dass der Prozess SCHED_OTHER yes nur ausgeführt wurde, wenn der Prozess SCHED_FIFO yes die CPU nicht verwendete.
Recommended Posts