GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie lösche ich Festplatten-E/A-Caches unter Linux?

So geht's:

# sync # (move data, modified through FS -> HDD cache) + flush HDD cache
# echo 3 > /proc/sys/vm/drop_caches # (slab + pagecache) -> HDD (https://www.kernel.org/doc/Documentation/sysctl/vm.txt)
# blockdev --flushbufs /dev/sda
# hdparm -F /dev/sda

# NEXT COMMAND IS NOT FOR BENCHMARKING:
# should be run before unplug, flushes everything possible guaranteed.
# echo 1 > /sys/block/sdX/device/delete

Sie können strace verwenden, um zu sehen, dass dies drei verschiedene Syscalls sind

Außerdem kann es wünschenswert sein, den HDD-Cache mit hdparm auszuschalten, nicht sicher, was Sie Benchmarking durchführen.

Auf keinen Fall können Sie verhindern, dass die Festplatte die letzten 64/32/16 MB der zuletzt verwendeten Daten zwischenspeichert. Um diesen Cache zu löschen, schreiben Sie einfach einige Nullen (und leeren) + lesen Sie einen nicht verwandten Ort von der Festplatte. Dies ist erforderlich, da der Cache in einen Leseteil und einen Schreibteil aufgeteilt werden kann. Danach können Sie HDD Benchmarks durchführen.


Klingt, als wollten Sie den Sync-Befehl oder die Sync()-Funktion.

Wenn Sie den Festplatten-Cache leeren möchten:echo 3 | sudo tee /proc/sys/vm/drop_caches


Linux
  1. So partitionieren Sie eine Festplatte unter Linux

  2. So finden Sie unter Linux heraus, ob es sich bei der Festplatte um eine SSD oder HDD handelt

  3. Wie finde ich eine Festplatte als SSD oder HDD in Linux?

  4. Linux – Wie überwacht man die Festplatten-E/A in einem bestimmten Verzeichnis?

  5. Wie führen Sie nicht blockierende Konsolen-E/A unter Linux in C durch?

So listen Sie Festplattenpartitionen unter Linux auf

So mounten Sie eine NTFS-Festplatte unter Linux

So verschlüsseln Sie eine Partition unter Linux

So formatieren Sie Festplattenpartitionen unter Linux

So erstellen Sie Festplattenpartitionen unter Linux

10 iozone-Beispiele für die Messung der Festplatten-E/A-Leistung unter Linux