1. Resumen
- Organización de la definición, diagnóstico, respuesta y medidas de prevención del fenómeno de thrashing que ocurre en la caché (ARC) del sistema de archivos ZFS
2. Definición del thrashing de ZFS ARC
- Concepto: debido a fallos continuos de caché (Hit), se producen reemplazos frecuentes de elementos de caché (Eviction), lo que termina degradando el rendimiento del sistema
- Impacto: en entornos de I/O de alto rendimiento (por ejemplo, servidores de bases de datos) puede provocar interrupciones graves del servicio
3. Principales síntomas de diagnóstico
- El valor de
iowait de CPU se mantiene por encima de 20%
- Aumento del uso de CPU en
system mode frente a lo habitual
- Disminución de la tasa de aciertos de caché (Hit rate) (es necesario compararla con datos normales)
- Síntoma clave: si los hilos del kernel
arc_prune y arc_evict ocupan más de 90% de CPU, el thrashing es seguro
4. Medidas de respuesta de emergencia
- Acción: eliminar manualmente la caché del sistema de archivos de Linux
- Comando:
echo 3 > /proc/sys/vm/drop_caches
- Efecto: elimina en conjunto la page cache y los objetos slab
- Características:
- Los datos no reflejados aún en disco (dirty item) se conservan, por lo que no hay pérdida de datos (no destructivo)
- Justo después de ejecutarlo puede haber una degradación temporal del rendimiento hasta que la caché vuelva a llenarse
5. Prevención de fondo
- Causa: el tamaño de caché ARC asignado es insuficiente en relación con la carga de trabajo del sistema
- Tamaño de ARC (
zfs_arc_max):
- El valor predeterminado ya es muy grande, equivalente a 1/2 de la memoria del sistema (en Linux)
- Puede provocar competencia por memoria con otras aplicaciones, así que no es fácil aumentarlo sin más
- Soluciones:
- Si otras aplicaciones tienen un alto uso de memoria, reducir el valor de
zfs_arc_max para evitar competencia
- Para resolver el problema de raíz, la forma más segura es ampliar la memoria física (Scale-up)
Aún no hay comentarios.