La caché de datos de ossfs es adecuada para escenarios en los que se lee con frecuencia un volumen pequeño de datos. Al habilitar esta función, se reduce de manera efectiva la latencia de lectura y mejora la eficiencia de las operaciones sobre los objetos. En este tema se describe cómo configurar y aprovechar correctamente la caché de datos de ossfs.
Al usar datos almacenados en la caché, debe prestar atención a su coherencia y vigencia. Por lo tanto, se recomienda no habilitar la caché de datos de ossfs en escenarios donde se requiera un alto rendimiento en tiempo real de los datos.
Contexto
Cuando se usa ossfs para acceder a los objetos, esta herramienta crea de forma predeterminada un archivo temporal llamado tmpfile en el directorio /tmp para utilizarlo como caché de disco. Este archivo resulta invisible para los usuarios. Una vez que se cierran todos los identificadores de archivos abiertos, el sistema elimina automáticamente el archivo temporal. Sin embargo, en escenarios de negocio donde se accede con frecuencia a los mismos objetos, este mecanismo obliga a descargarlos desde OSS cada vez que se abren, leen y cierran, lo cual consume una gran cantidad de capacidad de procesamiento de OSS.
Si habilita la caché de datos de ossfs, reducirá de manera efectiva la presión sobre el almacenamiento remoto causada por la lectura frecuente de datos activos. Además, disminuirá la latencia de lectura y la cantidad de accesos al almacenamiento remoto.
Escenarios
La caché de datos de ossfs es adecuada para escenarios en los que se lee con frecuencia un volumen pequeño de datos. Asegúrese de que la capacidad del disco local sea suficiente para almacenar los datos activos.
Comparación entre modos
A continuación se describen las diferencias entre el modo predeterminado de ossfs (sin caché de datos) y el modo de caché de datos de ossfs. En el modo predeterminado, se recomienda usar la opción tmpdir para mover el archivo temporal del directorio /tmp al directorio del disco de datos. De esta forma evitará que se ocupe la capacidad del disco del sistema.
|
Modo |
Operación de lectura |
Operación de escritura |
Rendimiento |
|
Modo predeterminado de ossfs (sin caché de datos) |
Cada vez que lee datos, estos se descargan del bucket a un archivo temporal y luego se leen desde dicho archivo. El archivo temporal se elimina cuando se cierran todos los identificadores de archivos. |
Se genera un archivo temporal que solo se elimina cuando se cierran todos los identificadores de archivos. Si escribe una gran cantidad de archivos en el archivo temporal, se consumirá mucha capacidad de disco. Si la capacidad del disco local es insuficiente, el sistema carga por adelantado las partes del archivo temporal y elimina la caché. En este caso, la velocidad de escritura queda limitada por la velocidad de carga de OSS. |
El rendimiento de este modo varía según el rendimiento del disco y la latencia de OSS. |
|
Caché de datos de ossfs |
La primera vez que lee objetos del bucket, se crea un archivo en la ruta de la caché y los objetos se almacenan en él. Posteriormente, puede leer los objetos repetidamente desde ese archivo. |
Los datos se escriben primero en la caché local. Cuando un archivo se actualiza o se cierra, se carga en el bucket. Si la capacidad de la caché local es insuficiente, ossfs carga por adelantado las partes del archivo y elimina la caché. En este caso, la velocidad de escritura queda limitada por la velocidad de carga de OSS. |
Si existe una caché local, el rendimiento de este modo varía según el rendimiento del disco. Si no existe una caché local, el rendimiento es igual al del modo predeterminado. En este último caso, el rendimiento depende del disco y de la latencia de OSS. |
Opciones de configuración
A continuación se describen los parámetros que puede configurar para la caché de datos de ossfs.
|
Parámetro |
Descripción |
Valor predeterminado |
|
use_cache |
Habilita la caché de datos de ossfs y especifica su ruta. De forma predeterminada, esta caché está deshabilitada. Por ejemplo, si especifica |
Ninguna |
|
ensure_diskfree |
Tamaño de la capacidad de disco que se reserva para evitar que el disco se llene por completo y afecte la escritura de datos de otras aplicaciones. De forma predeterminada, no se reserva capacidad de disco. Unidad: MB. Por ejemplo, si desea establecer en 1024 MB la capacidad de disco reservada por ossfs, especifique |
Ninguna |
|
del_cache |
Determina si se elimina la caché local. De forma predeterminada, la caché local no se elimina. Por ejemplo, si especifica |
Ninguna |
|
max_dirty_data |
Define el umbral de tamaño para cargar un archivo. Si el tamaño del archivo supera este valor, se carga incluso cuando el archivo no está cerrado. Unidad: MB. Por ejemplo, si desea que un archivo mayor a 2000 MB se cargue aunque no esté cerrado, especifique |
5120 |
Mecanismo de gestión de la caché de datos
En el modo de caché de datos de ossfs, el archivo almacenado en el disco no se elimina al cerrarlo. Así, podrá usarse directamente cuando vuelva a leerse más adelante.
-
Si la capacidad de la caché es insuficiente, se eliminan los datos almacenados en ella.
Durante las operaciones de lectura y escritura, el sistema comprueba el uso de la capacidad del disco. Si dicha capacidad es insuficiente, se activa la operación de recuperación de datos. Esta operación se ejecuta tomando como unidad mínima un solo archivo almacenado en la caché.
Recomendaciones
Si accede con frecuencia a objetos activos, se recomienda habilitar la caché de datos de ossfs y configurar su ruta. De este modo, los objetos se obtienen directamente de la caché local durante las lecturas repetidas. Esto reduce la latencia de acceso, acelera la carga de los objetos consultados con frecuencia y disminuye la cantidad de solicitudes hacia OSS.
Si otras aplicaciones también usan el disco donde se almacena la caché, se recomienda especificar la opción
ensure_diskfreeal utilizarlo. Con esto se reserva cierta capacidad de disco para garantizar el funcionamiento normal del sistema.Se recomienda no habilitar la caché de datos de ossfs en escenarios donde varios clientes escriban o lean datos simultáneamente, o donde un cliente escriba mientras varios leen, si se requiere coherencia de datos entre ellos.
Si la caché de datos de ossfs está habilitada, debe existir una caché en los escenarios donde un cliente escriba datos en ossfs. Para no desperdiciar capacidad de disco, se recomienda usar ossutil.
En escenarios donde se leen objetos grandes de una sola vez, el rendimiento de la caché es limitado. Por ello, se recomienda habilitar direct read mode para reducir el uso de la capacidad del disco.
El rendimiento de la caché de datos de ossfs depende del disco donde se almacenan los datos en caché. Se recomienda elegir discos de alto rendimiento, como los discos ESSD AutoPL con ráfaga de rendimiento habilitada, los discos efímeros elásticos o los discos locales. Para obtener más información, consulte ESSD AutoPL disks.