Wie kann ein Soft-Real-Time-Prozess mit starker Vertauschung der IO-intensiven Hintergrundlast durchgeführt werden?

546
Vi.
schedtool: PID 32301: PRIO 4, POLICY R: SCHED_RR, NICE -20, AFFINITY 0xf ionice: realtime: prio 4 

Aber die Musik stolpert trotzdem.

Die Hintergrundbelastung ist niedrig (praxistar) (SCHED_IDLEPRIO, Idle Ionice), benötigt jedoch viel Speicher (mehr als physisch verfügbar) und führt viele IO- und Berechnungsvorgänge durch.

Latenzzeit zeigt ungefähr 1500ms für:

Following symlink Writing buffer to disk (sync)  Page fault Writing a page to disk 

sowohl für die bg-last als auch für nicht zusammenhängende prozesse. Lastmittelwert ist 10 und zählt.

Warum kann es nicht beispielsweise 200 MHz eines der Kerne und 32 MB Speicher zuweisen und nicht weniger als einmal pro Sekunde Gelegenheit für IO für mplayer, damit es glücklich ist, während die Berechnungen im Hintergrund fortgesetzt werden?

Oder: Warum kann sie die Hintergrundaufgabe nicht verlassen und sich gegenseitig lieben, den Rest des Systems jedoch so belassen, als ob keine Hintergrundlast vorhanden wäre?

Wie lassen sich RT-Prozesse UND starke bg gleichzeitig laden (ohne virtuelle Maschinen)?

2
Haben Sie versucht, die Terminierungsklasse des Io-Heavy-Prozesses mit Ionice zu erhöhen? Was meinst du mit "der Hintergrundprozess ist niedrig"? Niedrige nette Werte haben eine höhere Priorität, daher ist dies möglicherweise nicht das, was Sie wollen. matthias krull vor 13 Jahren 0
Bedeutet "hoch nett" (intuitiv erwartet "hoch" als "gut" und "wichtig"). Das Hauptproblem scheint darin zu liegen, dass das gesamte System von einem Lowprio-Prozess abgebremst wird (niedrige Priorität wird erwartet => kann nicht verlangsamt werden, selbst wenn dies gewünscht wird). Vi. vor 13 Jahren 0

0 Antworten auf die Frage