Zuteilung des größten Puffers ohne Verwendung von Swap

n C / C ++ unter Linux muss ich einen großen Speicherblock (mehrere Gigabyte) zuweisen, um Echtzeitdaten von einem an den Ethernet-Port angeschlossenen Sensor zu speichern und Daten mit etwa 110 MB / s zu streamen. Ich möchte die größtmögliche Menge an Speicher zuweisen, um die Länge der Datensequenz zu maximieren, die ich speichern kann. Ich muss jedoch auch sicherstellen, dass keine Platten ausgetauscht werden, da die resultierende Verzögerung und die begrenzte Bandbreite des Plattenzugriffs dazu führen, dass der (sehr begrenzte) Puffer des Sensors überläuft.

Wie lässt sich am besten bestimmen, wie viel Speicher zugewiesen werden soll? Beschränke ich mich darauf, nur einen geringfügig kleineren Block als den gemeldeten freien Speicher zuzuweisen, oder kann ich direkter mit dem Linux Virtual Memory Manager kommunizieren?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage