GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo purgar cachés de E/S de disco en Linux?

Puedes hacerlo así:

# 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

Puede usar strace para ver que se trata de tres llamadas al sistema diferentes

Además, puede ser conveniente desactivar la memoria caché del disco duro usando hdparm, no estoy seguro de qué está comparando.

De ninguna manera, no puede evitar que HDD almacene en caché los últimos 64/32/16 MB de datos usados ​​recientemente. Para matar ese caché, simplemente escriba una cierta cantidad de ceros (y vacíe) + lea algún lugar no relacionado de HDD. Esto es necesario ya que la memoria caché se puede dividir en parte de lectura y parte de escritura. Después de eso, puede comparar HDD.


Parece que desea el comando de sincronización o la función sync().

Si desea vaciar la memoria caché del disco:echo 3 | sudo tee /proc/sys/vm/drop_caches


Linux
  1. Cómo particionar un disco en Linux

  2. Cómo encontrar si el disco es SSD o HDD en Linux

  3. ¿Cómo encontrar un disco SSD o HDD en Linux?

  4. Evaluación de la espera de E/S de la CPU en Linux

  5. Caída masiva e impredecible del rendimiento de E/S en Linux

Cómo enumerar particiones de disco en Linux

Cómo montar un disco NTFS en Linux

Cómo cifrar la partición en Linux

Cómo formatear particiones de disco en Linux

Cómo crear particiones de disco en Linux

10 ejemplos de iozone para la medición del rendimiento de E/S de disco en Linux