Linux y memoria/caché y almacenamiento en disco

Linux y memoria/caché y almacenamiento en disco

Quiero hacer una pregunta sobre la mejora de memoria/caché.

digamos que tenemos una máquina Linux con disco y alguna aplicación que escribió datos en el disco /var/data

Según tengo entendido, cuando la aplicación escribió datos en el disco, estos datos también se guardarán en la memoria caché.

durante algún tiempo, y después de X tiempo, los datos de la aplicación se eliminarán de la memoria caché

¿Es posible forzar que los datos específicos se guarden en la memoria caché y no en el disco?

El motivo de mi pregunta es porque queremos lectura/escritura rápida y los discos son muy lentos al respecto.

Respuesta1

guardado en la memoria caché

Realmente no existe tal cosa. empiezas desde estomejora/caché:

]# free -g
              total        used        free      shared  buff/cache   available
Mem:              7           0           3           0           3           6
Swap:             0           0           0

Esto proporciona la cantidad de RAM utilizada actualmente como búfer o caché. El kernel hace esto exactamente porque los discos son lentos y a menudo (como se muestra) hay suficiente RAM.

Si desea reservar una parte de la RAM para ciertos archivos, puede colocarlos en un disco RAM ( mount -t tmpfs ...). Pero luego debes recordar copiarlos nuevamente al disco.

Respuesta2

Creo que es posible que no haya entendido bien cómo funciona la jerarquía de la memoria. La jerarquía va, del más cercano a la CPU/más rápido al más lento:

Registro de CPU > Memoria caché > RAM/memoria principal > Disco

La memoria caché se encuentra entre la CPU y la memoria principal y su acceso es más rápido que la memoria principal. Normalmente, fragmentos de datos cercanos (es decir, copias de bloques de rangos de direcciones) se copian en la caché cuando se accede a una ubicación de memoria. Luego, la próxima vez que se acceda a una ubicación de memoria, primero se verifica el caché para ver si los datos ya están allí y se puede ahorrar tiempo al no tener que acceder a la memoria principal.

Entonces creo que tu pregunta no tiene mucho sentido. Normalmente no existe almacenamiento intermedio ni caché entre la memoria principal y el disco. Los datos que están actualmente en uso se almacenan en la RAM, y esa es la forma más eficiente de almacenarlos y acceder a ellos. Si desea guardarlo para más tarde, después de apagar la máquina, cópielo al disco (porque esa es su única opción). Si desea acceder a los datos ahora y rápidamente, no querrá tocar el disco, a menos que sea necesario.

No conozco ningún medio para anular fácilmente la administración de la memoria caché y almacenar algo en la caché, pero explícitamente no en la RAM. En general, ya existen sistemas muy buenos y eficientes para gestionar el almacenamiento en caché de la memoria.

Además, no creo que los datos se eliminen de la memoria caché después de X cantidad de tiempo. Por lo general, se elimina mediante datos más recientes a los que la CPU desea acceder.

información relacionada