Para evitar el efecto que el caché de disco tiene sobre los tests de rendimiento de findrepe he tenido que encontrar una forma de evitar dicho caché. De momento sólo se me han ocurrido dos formas:
Dado que sólo root tiene permiso para realizar esta operación será necesario hacerlo como root. Además esta operación sólo libera las páginas que ya están sincronizadas con el disco, por lo que se recomienda el uso de sync
Para verificar el resultado de la operación podemos usar
un ejemplo del resultado antes de la operación
despues de la operación
Y puesto que es especifica de Linux (no de sistemas GNU) mi recomendación para los que usan windows es, ¡¡¡Cambiad a GNU/Linux!!!
- Saturar el caché - Si el caché tiene un máximo de 3GB, sólo es necesario leer 3GB para que al comenzar el test nuevamente, no se noten los efectos del caché de disco. Si el programa se interrumpe, o no se llega a dicho tamaño no funcionará. He usado este método varias noches y aunque cumple perfectamente su función en cualquier sistema operativo, no es óptimo puesto que saturar el caché requiere bastante tiempo.
- Limpiar el caché - Dado que, excepto en el trabajo, desarrollo en GNU/Linux, existe otra posibilidad para núcleos 2.6.16 o posteriores usar /proc/sys/vm/drop_caches
- Liberar pagecache
echo 1 > /proc/sys/vm/drop_caches
- Liberar dentries e inodes
echo 2 > /proc/sys/vm/drop_caches
- Liberar pagecache, dentries e inodes
echo 3 > /proc/sys/vm/drop_caches
- No liberar nada
echo 0 > /proc/sys/vm/drop_caches
Dado que sólo root tiene permiso para realizar esta operación será necesario hacerlo como root. Además esta operación sólo libera las páginas que ya están sincronizadas con el disco, por lo que se recomienda el uso de sync
sync; echo 3 > /proc/sys/vm/drop_caches
Para verificar el resultado de la operación podemos usar
free -mo
un ejemplo del resultado antes de la operación
total used free shared buffers cached
Mem: 3033 1842 1191 0 72 889
Swap: 9538 0 9538
despues de la operación
total used free shared buffers cached
Mem: 3033 1011 2022 0 0 143
Swap: 9538 0 9538
Y puesto que es especifica de Linux (no de sistemas GNU) mi recomendación para los que usan windows es, ¡¡¡Cambiad a GNU/Linux!!!
2 comentarios:
Si, y como utilizo los juegos de windows, como el call of duty 4...el crysis...os gastais un moton de dinero en equipo para no utilizarlos :)
yo no juego a esas cosas, aunque el call of duty 2 (que no el 4) sí puedes jugarlo con codewavers.
lo de infrautilizar el equipo, si es cierto en tiempo, no en potencia, a veces uso varias cosas a la vez, que se comerian sobradamente mi equipo anterior obligandome ha hacerlo secuencialmente.
Publicar un comentario