Ich möchte eine Frage zum Speicherbuff/Cache stellen
Nehmen wir an, wir haben eine Linux-Maschine mit Festplatte und eine Anwendung, die Daten auf die Festplatte /var/data geschrieben hat
so wie ich es verstehe, werden Daten, die eine Anwendung auf die Festplatte schreibt, auch im Speichercache gespeichert.
für einige Zeit, und nach X Zeit werden die Anwendungsdaten aus dem Speichercache entfernt
ist es möglich, die Speicherung bestimmter Daten im Speichercache und nicht auf der Festplatte zu erzwingen?
der Grund für meine Frage ist, dass wir schnelles Lesen/Schreiben wollen und Festplatten diesbezüglich sehr langsam sind
Antwort1
im Speichercache gespeichert
So etwas gibt es eigentlich nicht. Man beginnt mit diesemBuff/Cache:
]# free -g
total used free shared buff/cache available
Mem: 7 0 3 0 3 6
Swap: 0 0 0
Dies gibt die Menge an RAM an, die derzeit als Puffer oder Cache verwendet wird. Der Kernel tut dies genau, weil Festplatten langsam sind und oft (wie gezeigt) genügend RAM vorhanden ist.
Wenn Sie einen Teil des RAM für bestimmte Dateien reservieren möchten, können Sie diese auf eine RAM-Disk ( mount -t tmpfs ...
) legen. Sie müssen dann aber daran denken, sie wieder auf die Festplatte zu kopieren.
Antwort2
Ich glaube, Sie haben ein Missverständnis darüber, wie die Speicherhierarchie funktioniert. Die Hierarchie verläuft vom CPU-nahen/schnellsten zum langsamsten:
CPU-Register > Cache-Speicher > RAM/Arbeitsspeicher > Festplatte
Der Cache-Speicher liegt zwischen der CPU und dem Hauptspeicher und ist schneller zugänglich als der Hauptspeicher. Normalerweise werden beim Zugriff auf einen Speicherort benachbarte Datenblöcke (d. h. Kopien von Adressbereichsblöcken) in den Cache kopiert. Beim nächsten Zugriff auf einen Speicherort wird dann zuerst der Cache überprüft, um festzustellen, ob die Daten bereits vorhanden sind. Dadurch kann Zeit gespart werden, da nicht auf den Hauptspeicher zugegriffen werden muss.
Ich finde also, dass Ihre Frage nicht ganz sinnvoll ist. Normalerweise gibt es keinen Zwischenspeicher oder Cache zwischen dem Hauptspeicher und der Festplatte. Daten, die gerade verwendet werden, werden im RAM gespeichert, und das ist die effizienteste Art, sie zu speichern und darauf zuzugreifen. Wenn Sie sie für später speichern möchten, kopieren Sie sie nach dem Ausschalten des Computers auf die Festplatte (weil das Ihre einzige Option ist). Wenn Sie jetzt und schnell auf die Daten zugreifen möchten, sollten Sie die Festplatte nicht berühren, es sei denn, es ist unbedingt nötig.
Mir ist keine Möglichkeit bekannt, die Cache-Speicherverwaltung einfach zu überschreiben und etwas im Cache zu speichern, aber ausdrücklich nicht im RAM. Es gibt im Allgemeinen bereits sehr gute und effiziente Systeme zur Verwaltung des Speichercaches.
Außerdem glaube ich nicht, dass Daten nach einer bestimmten Zeit aus dem Cache-Speicher entfernt werden. Normalerweise werden sie durch neuere Daten verdrängt, auf die die CPU zugreifen möchte.