jueves, diciembre 27, 2012

Invalidar las cachés de disco en Linux

Cuando se está haciendo medidas de rendimiento de programas que hacen un uso intensivo de disco, es necesario tener en cuenta que el sistema operativo tiene un caché donde están disponibles los bloques que más recientemente se han usado. Para que posibles problemas de rendimiento que no queden disimulado por los efectos de dicho cachés, es necesario vaciarlo.

Para vaciar las cachés se escriben ciertos valores en el fichero /proc/sys/vm/drop_caches. Eso sí, hay que tener en cuenta que el kernel sólo descarta aquellos cachés que no han sido modificados, no los que han sido modificados y todavía no se han escrito a disco. Para ello primero hay que ejecutar el comando sync para que el kernel escriba la información que conserva en memoria modificada. Luego, en función del valor que se escriba se vaciará la caché de página o la cache de dentries e inodos - que afecta al cacheo de componentes de disco -. Para vaciarlos todo escribimos un 3: sync;echo 3 > /proc/sys/vm/drop_caches. Se puede también escribir 1 para vaciar la caché de páginas o 2 para vaciar la cache de i-nodos y dentries.



Technorati Tags:

No hay comentarios: