Esto se ha pedido anteriormente pero no desea actualizar el mismo subproceso nuevamente ya que era un subproceso antiguo.Comprensión de "Buffers" y "Cached" desde el comando
Quiero aclararme en la columna "búferes" y "caché" de la salida del comando free
.
Esto es lo que mi comprensión ...
Buffer es algo en que los datos está ahí en la memoria pero aún no se ha volcado al disco. Los datos serán descargados al disco bdflush
daemon periódicamente o podemos hacerlo manualmente ejecutando el comando sync
.
La memoria caché, por el contrario, es un programa/datos que se carga en la memoria pero se retiene en la memoria para que, si se necesita nuevamente, esté disponible rápidamente.
Para entender el concepto de tampones, probé el siguiente experimento ...
Ésta es la lectura de free
comando en mi escritorio
[[email protected] ~]$ free -m total used free shared buffers cached Mem: 2897 465 2431 0 30 230 -/+ buffers/cache: 204 2692 Swap: 4000 0 4000 [[email protected] ~]$ sync [[email protected] ~]$ free -m total used free shared buffers cached Mem: 2897 466 2431 0 30 230 -/+ buffers/cache: 205 2691 Swap: 4000 0 4000
Aquí no puedo ver Buffer siendo reducida después de ejecutar el sync
comando.
Luego probé lo siguiente ... Intenté escribir un archivo enorme en el disco.
[[email protected] ~]$ dd if=/dev/zero of=test bs=1024k
Como era de esperar, el valor almacenado en caché debe aumentar y libre se confirma esta ..
@localhost ~]# free -m total used free shared buffers cached Mem: 2897 1466 1430 0 32 1127 -/+ buffers/cache: 306 2590 Swap: 4000 0 4000
vuelvo a ejecutar el comando sync
y luego se comprueba mediante free
. Puedo ver que el valor del buffer se reduce a partir de la salida del comando free
. No hubo reducción en el caché. Esto significa que las páginas sucias en la RAM después de mi ejecución de dd
se han enrutado al disco.
@localhost ~]# free -m total used free shared buffers cached Mem: 2897 1466 1430 0 10 1127 -/+ buffers/cache: 306 2590 Swap: 4000 0 4000
Entonces actualizan el parámetro drop_cache
kernel para que el caché se deja caer vlaue
[[email protected] ~]# cat /proc/sys/vm/drop_caches 0 [[email protected] ~]# echo "1" > /proc/sys/vm/drop_caches [[email protected] ~]# cat /proc/sys/vm/drop_caches 1
free
ahora confirma que tanto en tampón y se deja caer el valor de cache.
[[email protected] ~]# free -m total used free shared buffers cached Mem: 2897 299 2597 0 1 74 -/+ buffers/cache: 224 2672 Swap: 4000 0 4000
lo tanto, mi afirmación inicial de que "buffer" es la memoria RAM de datos, que aún no se ha volcado a disco parece ser correcta.
Por favor, guíame si estoy en la dirección correcta.