Guía SAS VIYA

SAS Viya 3.5: Comprender y resolver el error "Local CASLIB quota exceeded"

Simon 26/03/2022 4 views

Al ejecutar modelos complejos en SAS© Viya (como VDMML), puede ocurrir que su proceso se detenga abruptamente mostrando un mensaje de error específico sobre las cuotas. Este problema suele surgir al entrenar modelos que consumen muchos recursos, como los "Random Forests", que generan archivos de estado (ASTORE) muy voluminosos.

Si ha encontrado el mensaje ERROR: Local CASLIB quota exceeded, este artículo le explica por qué ocurre y cómo solucionarlo.

Illustration

El Síntoma

El escenario es clásico: inicia un entrenamiento de modelo. Los registros indican que todo funciona con normalidad, las tablas se cargan y el cálculo comienza. De repente, en el momento de escribir el archivo de guardado del modelo (el archivo savestate o astore), el proceso falla.

A continuación, un extracto típico del registro que podría observar:

ERROR: Local CASLIB quota exceeded. ERROR: The action stopped due to errors.

En este ejemplo, el sistema intentó escribir un archivo de más de 10 GB (10 139 446 832 bytes) antes de ser bloqueado por el sistema.

El Origen del Problema: ¿Cuota del SO o Cuota de CAS?

La primera reacción suele ser verificar las cuotas del sistema operativo (SO). Sin embargo, si no ha definido ninguna restricción a nivel del SO, el error proviene de la configuración interna del servidor CAS de SAS© Viya.

El error indica que la caché de disco asignada a la biblioteca CAS (Caslib) ha alcanzado su límite. SAS© Viya utiliza políticas de gestión de recursos para evitar que un solo proceso o una sola biblioteca monopolice todo el espacio en disco del servidor, lo que podría provocar la caída de todo el sistema.

Comprender la "Global Caslib Policy"

En SAS© Viya, la gestión del espacio en disco para las tablas globales se rige por reglas de política (Policy Definition). El parámetro clave aquí es la cuota.

La cuota especifica la cantidad máxima de espacio de caché de disco (en bytes) que una Caslib global puede utilizar.

La configuración generalmente se presenta de esta forma:

  • globalCaslibs: Define las reglas para las bibliotecas.

  • quota: El límite en bytes.

  • _ALL_: Una regla que se aplica al conjunto de todas las bibliotecas globales acumuladas.

Ejemplo de configuración:

New Buffer RO
globalCaslibs
_ALL_ 400000000
HPS 200000000
MyGlobal 100000000
~
~
En este ejemplo, la biblioteca MyGlobal está limitada a 100 MB. Si intenta escribir un archivo que exceda este tamaño, se activará el error "Quota exceeded". Del mismo modo, si la suma de todas las bibliotecas excede el límite definido por _ALL_, el error también ocurrirá.

La Solución

Para resolver este problema, es necesario ajustar la configuración de los recursos del servidor CAS.

  1. Identifique la Caslib afectada: Verifique en qué biblioteca está intentando escribir su proceso (a menudo la Casuser o una biblioteca temporal durante la creación de un ASTORE).

  2. Aumente la Cuota: Es necesario modificar la política globalCaslibs para aumentar el valor de la quota asignada a esta biblioteca específica o al parámetro _ALL_.

  3. Supervise la Caché de Disco: Asegúrese de que el servidor disponga físicamente del espacio en disco necesario para alojar estos aumentos de cuota.

En resumen, este error es una medida de seguridad interna de SAS© Viya. Garantiza la estabilidad del servidor pero requiere un ajuste manual cuando se manipulan modelos de Data Science que generan archivos especialmente voluminosos.