confundido acerca de la velocidad de escritura dd y el caching de la página VFS

Después de leer algunos artículos en la memory caching de la página VFS de Linux y los parameters ajustables como dirty_ratio tuve la printing de que la memory caching de la página funcionaría como capa de caching tanto de lectura como de escritura.

Pero al usar la testing simple a continuación, funciona bien para mejorar la velocidad de lectura de los files que se encuentran en la memory caching de la página, pero no parece funcionar en las escrituras.

p.ej

Borre la caching y escriba en el file.

 # swapoff -a # echo 3 > /proc/sys/vm/drop_caches # dd if=/dev/zero of=/home/flo/test bs=1M count=30 30+0 records in 30+0 records out 31457280 bytes (31 MB) copied, 0.182474 s, 172 MB/s 

Verifique que el file esté realmente en la memory caching de la página

 # vmtouch /home/flo/test Files: 1 Directories: 0 Resident Pages: 7680/7680 30M/30M 100% Elapsed: 0.000673 seconds 

Leer del file para confirmar proviene de la memory caching.

 # dd if=/home/flo/test of=/dev/null bs=1M count=30 30+0 records in 30+0 records out 31457280 bytes (31 MB) copied, 0.00824169 s, 3.8 GB/s 

Coloque la caching y vuelva a leer para probar la diferencia de velocidad.

 # echo 3 > /proc/sys/vm/drop_caches # dd if=/home/flo/test of=/dev/null bs=1M count=30 30+0 records in 30+0 records out 31457280 bytes (31 MB) copied, 0.132531 s, 237 MB/s 

Como no estoy usando DIRECT_IO con dd esperaba que el caching de la página se utilizara como un tipo de caching de reescritura. Y en base a dirty_ratio o dirty_expire_centiseconds … eventualmente los datos se dirty_expire_centiseconds al disco.

¿Puede alguien explicar cómo VFS maneja el process de lectura y escritura de manera diferente, especialmente durante las escrituras y por qué no hay ganancia de velocidad?

¿Hay alguna forma de hacer que el vfs sea más agresivo en el almacenamiento en caching de escritura, por lo que se comporta más como la memory caching de recuperación que puede encontrar en un controller de banda, por ejemplo.

Gracias

fLo

Simplemente no use dd . Por ejemplo, use cp y obtendrá pagecache para escribir bien.