Guía de administración de sistemas: administración de recursos y contenedores de Oracle Solaris y zonas de Oracle Solaris

Capítulo 11 Administración del daemon de límite de recursos (tareas)

Este capítulo contiene procedimientos para configurar y utilizar el daemon de límite de recursos rcapd.

Para ver una descripción general de rcapd, consulte el Capítulo 10Control de memoria física utilizando el daemon de límite de recursos (descripción general).

Configuración y uso del daemon de límite de recursos (mapa de tareas)

Tarea 

Descripción 

Para obtener instrucciones 

Definir el umbral de aplicación del límite de memoria. 

Configura un límite que se aplicará cuando haya demasiado poca memoria física disponible para los procesos. 

Cómo establecer el umbral de aplicación del límite de memoria

Definir el intervalo de operación. 

El intervalo se aplica a las operaciones periódicas que lleva a cabo el daemon de límite de recursos. 

Cómo configurar intervalos de funcionamiento

Activar límite de recursos. 

Activa el límite de recursos en el sistema. 

Cómo activar los límites de recursos

Desactivar límite de recursos. 

Desactiva el límite de recursos del sistema. 

Cómo desactivar los límites de recursos

Límite de informe e información del proyecto. 

Visualiza comandos de ejemplo para producir informes. 

Límite de informe e información del proyecto

Supervisar el tamaño del conjunto residente de un proyecto. 

Produce un informe del tamaño del conjunto residente de un proyecto. 

Supervisón del RSS de un proyecto

Determinar el tamaño del conjunto de trabajo de un proyecto. 

Produce un informe del tamaño del conjunto de trabajo de un proyecto. 

Cómo determinar el tamaño del conjunto de trabajo de un proyecto

Informe sobre el uso y los límites de la memoria. 

Imprime una línea de aplicación del límite y el uso de la memoria al final del informe para cada intervalo. 

Informes del uso de la memoria y el umbral de aplicación del límite de la memoria

Administración del daemon de límite de recursos con rcapadm

Esta sección contiene los procedimientos para configurar el daemon de límite de recursos con el comando rcapadm. Consulte Configuración de rcapd y la página del comando man rcapadm(1M) para obtener información adicional. El uso de rcapadm para especificar un límite de recursos temporal para una zona también queda cubierto.

Si se utiliza sin argumentos, rcapadm muestra el estado actual del daemon de límite de recursos si se ha configurado.

ProcedureCómo establecer el umbral de aplicación del límite de memoria

Pueden configurarse los límites para que no se apliquen hasta que quede poca memoria física disponible para los procesos. Consulte Umbral de aplicación de límite de memoria para obtener más información.

El valor mínimo (y predeterminado) es 0, lo que significa que los límites de memoria siempre se aplican. Para definir un mínimo distinto, siga este procedimiento.

  1. Conviértase en superusuario o asuma un rol que incluya el perfil de administración de procesos.

    El rol de administrador del sistema incluye el perfil de administración de procesos. Para obtener información sobre cómo crear el rol y asignarlo a un usuario, consulte el apartado Managing RBAC (Task Map) en System Administration Guide: Security Services.

  2. Utilice la opción -c de rcapadm para definir un valor de uso de memoria física distinto para la aplicación del límite de memoria.


    # rcapadm -c percent
    

    por ciento va de 0 a 100. Los valores más altos son menos restrictivos. Un valor más elevado significa que las cargas de trabajo del proyecto limitado pueden ejecutarse sin tener los límites aplicados hasta que el uso de memoria del sistema supere este umbral.

Véase también

Para ver el uso actual de la memoria física y el umbral de aplicación del límite, consulte Informes del uso de la memoria y el umbral de aplicación del límite de la memoria.

ProcedureCómo configurar intervalos de funcionamiento

Intervalos de operación rcapd contiene información sobre los intervalos para las operaciones periódicas que lleva a cabo rcapd. Siga este procedimiento para configurar los intervalos de funcionamiento utilizando rcapadm.

  1. Conviértase en superusuario o asuma un rol que incluya el perfil de administración de procesos.

    El rol de administrador del sistema incluye el perfil de administración de procesos. Para obtener información sobre cómo crear el rol y asignarlo a un usuario, consulte el apartado Managing RBAC (Task Map) en System Administration Guide: Security Services.

  2. Utilice la opción -i para configurar los valores del intervalo.


    # rcapadm -i interval=value,...,interval=value 
    

    Nota –

    Todos los valores de intervalo se especifican en segundos.


ProcedureCómo activar los límites de recursos

Existen tres modos de activar los límites de recursos en el sistema. La activación de los límites de recursos también configura el archivo /etc/rcap.conf con los valores predeterminados.

  1. Conviértase en superusuario o asuma un rol que incluya el perfil de administración de procesos.

    El rol de administrador del sistema incluye el perfil de administración de procesos. Para obtener información sobre cómo crear el rol y asignarlo a un usuario, consulte el apartado Managing RBAC (Task Map) en System Administration Guide: Security Services.

  2. Active el daemon de límite de recursos mediante uno de estos procedimientos:

    • Active los límites de recursos utilizando el comando svcadm.


      # svcadm enable rcap
      
    • Active el daemon de límite de recursos para que se inicie ahora y también cada vez que se inicie el sistema. Para ello, escriba:


      # rcapadm -E
      
    • Active el daemon de límite de recursos al iniciar sin iniciarlo ahora especificando también la opción -n:


      # rcapadm -n -E
      

ProcedureCómo desactivar los límites de recursos

Hay tres modos de desactivar los límites de recursos del sistema.

  1. Conviértase en superusuario o asuma un rol que incluya el perfil de administración de procesos.

    El rol de administrador del sistema incluye el perfil de administración de procesos. Para obtener información sobre cómo crear el rol y asignarlo a un usuario, consulte el apartado Managing RBAC (Task Map) en System Administration Guide: Security Services.

  2. Desactive el daemon de límite de recursos mediante uno de estos procedimientos:

    • Desactive el límite de recursos utilizando el comando svcadm.


      # svcadm disable rcap
      
    • Para desactivar el daemon de límite de recursos para que se detenga ahora y que no se inicie al iniciar el sistema, escriba:


      # rcapadm -D
      
    • Para desactivar el daemon de límite de recursos sin detenerlo, especifique también la opción -n:


      # rcapadm -n -D
      

    Consejo –

    Desactivación segura del daemon de límite de recursos


    Utilice los comandos svcadm o rcapadm con -D para desactivar rcapd de forma segura. Si se cierra el daemon (consulte la página del comando man kill(1)), los procesos podrían quedar detenidos y deberían reiniciarse manualmente. Para reanudar un proceso en ejecución, utilice el comando prun. Consulte la página del comando man prun(1) para obtener más información.

ProcedureCómo especificar un límite de recursos temporal para una zona

Este procedimiento se utiliza para asignar la cantidad máxima de memoria que puede consumir una zona especificada. Este valor sólo dura hasta la próxima vez que se reinicie. Para establecer un límite persistente, utilice el comando zonecfg.

  1. Conviértase en superusuario o asuma un rol que incluya el perfil de administración de procesos.

    El rol de administrador del sistema incluye el perfil de administración de procesos.

  2. Establezca un valor máximo de memoria de 512 MB para la zona my-zone.


    # rcapadm -z testzone -m 512M
    

Creación de informes con rcapstat

Utilice rcapstat para registrar las estadísticas de límites de recursos. Supervisión del uso de recursos con rcapstat explica cómo utilizar el comando rcapstat para generar informes. En dicha sección también se describen las cabeceras de columna en el informe. La página del comando man rcapstat(1) también contiene esta información.

Las siguientes subsecciones utilizan ejemplos para ilustrar el modo en que se producen informes para fines específicos.

Límite de informe e información del proyecto

En este ejemplo, se definen límites para dos proyectos asociados con dos usuarios. user1 tiene un límite de 50 megabytes y user2 un límite de 10 megabytes.

El comando siguiente produce cinco informes a intervalos de muestreo de 5 segundos.


user1machine% rcapstat 5 5
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M   50M    0K 3312K    0K
 78194   user2      1  2368K  1856K   10M    0K    0K    0K    0K
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M    0K    0K    0K    0K
 78194   user2      1  2368K  1856K   10M    0K    0K    0K    0K
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M    0K    0K    0K    0K
 78194   user2      1  2368K  1928K   10M    0K    0K    0K    0K
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M    0K    0K    0K    0K
 78194   user2      1  2368K  1928K   10M    0K    0K    0K    0K
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M    0K    0K    0K    0K
 78194   user2      1  2368K  1928K   10M    0K    0K    0K    0K 

Las tres primeras líneas de la salida constituyen el primer informe, que contiene el límite y la información del proyecto para los dos proyectos y las estadísticas de paginación desde el inicio de rcapd. Las columnas at y pg tienen un número mayor que cero para user1 y cero para user2, lo que indica que en algún punto del historial del daemon user1 ha superado su límite pero user2 no lo ha hecho.

Los informes subsiguientes no muestran ninguna actividad significativa.

Supervisón del RSS de un proyecto

En el ejemplo siguiente se muestra el user1 del proyecto, que fue un RSS que superó su límite.

El comando siguiente produce cinco informes a intervalos de muestreo de 5 segundos.


user1machine% rcapstat 5 5

    id project  nproc    vm   rss   cap    at avgat     pg  avgpg
376565   user1      3 6249M 6144M 6144M  690M  220M  5528K  2764K
376565   user1      3 6249M 6144M 6144M    0M  131M  4912K  1637K
376565   user1      3 6249M 6171M 6144M   27M  147M  6048K  2016K
376565   user1      3 6249M 6146M 6144M 4872M  174M  4368K  1456K
376565   user1      3 6249M 6156M 6144M   12M  161M  3376K  1125K

El proyecto user1 tiene tres procesos que utilizan activamente la memoria física. Los valores positivos de la columna pg indican que rcapd está extrayendo de forma coherente la memoria al intentar alcanzar el límite bajando el uso de la memoria física de los procesos del proyecto. Sin embargo, rcapd no consigue mantener el RSS por debajo del valor límite. Esto se indica mediante los valores rss variables que no muestran una disminución correspondiente. En cuanto se extrae la memoria, la carga de trabajo vuelve a utilizarla y el número de RSS vuelve a subir. Esto significa que toda la memoria residente del proyecto se está utilizando de forma activa y el tamaño del conjunto de trabajo (WSS) es superior al límite. De este modo, rcapd fuerza la extracción de parte del conjunto de trabajo para cumplir el límite. Con esta condición, el sistema seguirá experimentando altos índices de fallos de paginación y la E/S asociada, hasta que tenga lugar una de las condiciones siguientes:

En esta situación, la reducción del intervalo de muestreo podría disminuir la discrepancia entre el valor de RSS y el límite al hacer que rcapd muestree la carga de trabajo y aplique los límites con mayor frecuencia.


Nota –

Se produce un fallo de página cuando debe crearse una página o el sistema debe copiar una página desde un dispositivo de intercambio.


Cómo determinar el tamaño del conjunto de trabajo de un proyecto

El ejemplo siguiente es una continuación del anterior, y utiliza el mismo proyecto.

El ejemplo anterior muestra que el proyecto user1 está utilizando más memoria física de lo que permite su límite. Este ejemplo muestra cuánta memoria requiere la carga de trabajo del proyecto.


user1machine% rcapstat 5 5
    id project  nproc    vm   rss   cap    at avgat     pg  avgpg
376565   user1      3 6249M 6144M 6144M  690M    0K   689M     0K
376565   user1      3 6249M 6144M 6144M    0K    0K     0K     0K
376565   user1      3 6249M 6171M 6144M   27M    0K    27M     0K
376565   user1      3 6249M 6146M 6144M 4872K    0K  4816K     0K
376565   user1      3 6249M 6156M 6144M   12M    0K    12M     0K
376565   user1      3 6249M 6150M 6144M 5848K    0K  5816K     0K
376565   user1      3 6249M 6155M 6144M   11M    0K    11M     0K
376565   user1      3 6249M 6150M   10G   32K    0K    32K     0K
376565   user1      3 6249M 6214M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K

A mitad del ciclo, el límite del proyecto user1 se aumenta de 6 a 10 gigabytes. Este aumento detiene la aplicación del límite y permite el aumento del tamaño del conjunto residente, limitado sólo por los demás procesos y la cantidad de memoria del equipo. La columna rss podría estabilizarse para reflejar el tamaño del conjunto de trabajo del proyecto (WSS), en este caso 6247M. Se trata del valor de límite mínimo que permite que los procesos del proyecto funcionen sin incurrir en fallos de página continuos.

Mientras que el límite de user1 es de 6 s, en cada intervalo de 5 segundos el RSS disminuye y la E/S aumenta mientras rcapd extrae parte de la memoria de la carga de trabajo. Un poco después de completar la extracción, la carga de trabajo, que necesita dichas páginas, las vuelve a insertar mientras sigue ejecutándose. Este ciclo se repite hasta que se eleva el límite a 10 gigabytes, aproximadamente por la mitad del ejemplo. El RSS se estabiliza en 6,1 gigabytes. Dado que el RSS de la carga de trabajo está ahora por debajo del límite, no se produce ninguna paginación adicional. También se detiene la E/S asociada con la paginación. De este modo, el proyecto necesita 6,1 gigabytes para llevar a cabo el trabajo que estaba realizando en el momento en que se observó.

Consulte también las páginas del comando man vmstat(1M) y iostat(1M).

Informes del uso de la memoria y el umbral de aplicación del límite de la memoria

La opción -g de rcapstat permite registrar lo siguiente:

La opción -g imprime una línea de aplicación del límite y el uso de la memoria al final del informe para cada intervalo.


# rcapstat -g
    id project   nproc    vm   rss   cap    at avgat   pg  avgpg
376565    rcap       0    0K    0K   10G    0K    0K   0K     0K
physical memory utilization: 55%   cap enforcement threshold: 0%
    id project   nproc    vm   rss   cap    at avgat   pg  avgpg
376565    rcap       0    0K    0K   10G    0K    0K   0K     0K
physical memory utilization: 55%   cap enforcement threshold: 0%