Wir erstellen ein Python-Framework, das Daten von einer Framegrabber-Karte über eine cffi-Schnittstelle erfasst. Nach einiger Manipulation versuchen wir, RAW-Bilder (numpy Arrays mit der Tofile-Methode) mit einer Geschwindigkeit von etwa 120 MB/s auf die Festplatte zu schreiben. Wir sind uns bewusst, dass Festplatten diesen Durchsatz bewältigen können.Machen Sie Python-Prozess-Schreibvorgänge für sofortiges Schreiben geplant, ohne dass sie als fehlerhaft markiert werden.
Das Problem, das wir erlebten, war ausgelassene Frames, oft ganze Sekunden von Daten komplett fehlen von der Framegrabber-Ausgabe. Was wir fanden, war, dass diese Framedrops auftraten, als unser Debian-System das in sysctl gesetzte dirty_background_ratio traf. Das System rief die bündige Hintergrundgruppe an, die den Framegrabber überhäufte und Frames übersprang. So
Nicht überraschend, die dirty_background_ratio auf 0% Einstellung verwalten vollständig aus dem Problem loszuwerden (Feststellung Es ist erwähnenswert, dass selbst kleine Zahlen wie 1% und 2% nach wie vor in Folge ~ 40% Rahmenverlust)
Meine Frage ist, gibt es eine Möglichkeit, diesen Python-Prozess so zu schreiben, dass er sofort für das Ausschreiben geplant wird und den Dirty-Buffer vollständig umgeht?
Dank