GNU/Linux >> Tutoriels Linux >  >> Linux

Comment purger les caches d'E/S disque sous Linux ?

Vous pouvez le faire comme ceci :

# 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

Vous pouvez utiliser strace pour voir qu'il s'agit de trois appels système différents

En outre, il peut être souhaitable de désactiver le cache du disque dur à l'aide de hdparm, sans savoir quelle chose vous comparez.

En aucun cas, vous ne pouvez empêcher le disque dur de mettre en cache les derniers 64/32/16 Mo de données récemment utilisées. Afin de tuer ce cache, écrivez simplement une certaine quantité de zéros (et videz) + lisez un endroit sans rapport avec le disque dur. Ceci est nécessaire car le cache peut être divisé en partie lecture et partie écriture. Après cela, vous pouvez comparer le disque dur.


On dirait que vous voulez la commande sync ou la fonction sync().

Si vous souhaitez vider le cache disque :echo 3 | sudo tee /proc/sys/vm/drop_caches


Linux
  1. Comment partitionner un disque sous Linux

  2. Comment savoir si le disque est un SSD ou un disque dur sous Linux

  3. Comment trouver un disque SSD ou HDD sous Linux ?

  4. Linux – Comment surveiller les E/S de disque dans un répertoire particulier ?

  5. Évaluation de l'attente d'E/S CPU sous Linux

Comment répertorier les partitions de disque sous Linux

Comment monter un disque NTFS sous Linux

Comment chiffrer une partition sous Linux

Comment formater des partitions de disque sous Linux

Comment créer des partitions de disque sous Linux

10 exemples iozone pour la mesure des performances d'E/S de disque sous Linux