JavaScript is required to for searching.
Omitir Vínculos de navegación
Salir de la Vista de impresión
Administración de Oracle Solaris 11.1: zonas de Oracle Solaris, zonas de Oracle Solaris 10 y gestión de recursos     Oracle Solaris 11.1 Information Library (Español)
search filter icon
search icon

Información del documento

Prefacio

Parte I Gestión de recursos de Oracle Solaris

1.  Introducción a la gestión de recursos

2.  Proyectos y tareas (información general)

3.  Administración de proyectos y tareas

4.  Contabilidad ampliada (descripción general)

5.  Administración de contabilidad ampliada (tareas)

6.  Controles de recursos (descripción general)

Conceptos de controles de recursos

Límites y controles de recursos

Comunicación entre procesos y controles de recursos

Mecanismos de limitación del control de recursos

Mecanismos de atributos de proyecto

Configuración de controles de recursos y atributos

Controles de recursos disponibles

Controles de recursos de la zona

Compatibilidad con unidades

Valores de controles de recursos y niveles de privilegio

Acciones locales y globales en valores de controles de recursos

Acciones globales en valores de controles de recursos

Acciones locales en valores de controles de recursos

Propiedades e indicadores de controles de recursos

Aplicación de controles de recursos

Supervisión global de los eventos de controles de recursos

Aplicación de controles de recursos

Actualización temporal de los valores de controles de recursos en un sistema en ejecución

Actualización de estados de registro

Actualización de controles de recursos

Comandos utilizados con controles de recursos

7.  Administración de controles de recursos (tareas)

8.  Programador de reparto justo (descripción general)

9.  Administración del programador de reparto justo (tareas)

10.  Control de memoria física utilizando el daemon de límite de recursos (descripción general)

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

12.  Agrupaciones de recursos (descripción general)

13.  Creación y administración de agrupaciones de recursos (tareas)

14.  Ejemplo de configuración de administración de recursos

Parte II Zonas de Oracle Solaris

15.  Introducción a Zonas de Oracle Solaris

16.  Configuración de zonas no globales (descripción general)

17.  Planificación y configuración de zonas no globales (tareas)

18.  Acerca de la instalación, el cierre, la detención, la desinstalación y la clonación de zonas no globales (descripción general)

19.  Cómo instalar, iniciar, cerrar, detener, desinstalar y clonar zonas no globales (tareas)

20.  Inicio de sesión en zonas no globales (descripción general)

21.  Registro en zonas no globales (tareas)

22.  Acerca de migraciones de zonas y la herramienta zonep2vchk

23.  Migración de sistemas Oracle Solaris y migración de zonas no globales (tareas)

24.  Acerca de la instalación automática y los paquetes de un sistema Oracle Solaris 11.1 con zonas instaladas

25.  Administración de zonas de Oracle Solaris (descripción general)

26.  Administración de zonas de Oracle Solaris (tareas)

27.  Configuración y administración de zonas inmutables

28.  Resolución de problemas relativos a las zonas de Oracle Solaris

Parte III Zonas de Oracle Solaris 10

29.  Introducción a las zonas de Oracle Solaris 10

30.  Evaluación de un sistema Oracle Solaris 10 y creación de un archivo

31.  (Opcional) Migración de una zona no global native de Oracle Solaris 10 a una zona de Oracle Solaris 10

32.  Configuración de la zona con marca solaris10

33.  Instalación de zona con marca solaris10

34.  Inicio de una zona, inicio de sesión y migración de zona

Glosario

Índice

Configuración de controles de recursos y atributos

La función de controles de recursos se configura mediante la base de datos de project. Consulte el Capítulo 2, Proyectos y tareas (información general). Los controles de recursos y otros atributos se configuran en el campo final de la entrada de la base de datos project. Los valores asociados con cada control de recursos se incluyen entre paréntesis, y aparecen como texto sin formato separado por comas. Los valores entre paréntesis constituyen una "cláusula de acción". Cada cláusula de acción se compone de un nivel de privilegio, un valor umbral y una acción asociada con el umbral específico. Cada control de recurso puede tener varias cláusulas de acción, que también se separan con comas. La entrada siguiente define un límite de proceso ligero por tarea y un límite de tiempo de CPU máximo por proceso en una entidad de proyecto. process.max-cpu-time enviaría SIGTERM a un proceso después de que el proceso se ejecute durante una hora, y SIGKILL si el proceso siguiera ejecutándose durante una hora y un minuto. Consulte la Tabla 6-3.

development:101:Developers:::task.max-lwps=(privileged,10,deny);
  process.max-cpu-time=(basic,3600,signal=TERM),(priv,3660,signal=KILL)
typed as one line

Nota - En los sistemas con zonas activadas, los controles de recursos de la zona se especifican en la configuración de zona con un formato ligeramente diferente. Consulte Datos de configuración de zonas para obtener más información.


El comando rctladm permite realizar interrogaciones de tiempo de ejecución y modificaciones en la función de controles de recursos con ámbito global. El comando prctl permite realizar interrogaciones de tiempo de ejecución y modificaciones en la función de controles de recursos, con ámbito local.

Para obtener más información, consulte Acciones locales y globales en valores de controles de recursos, rctladm(1M) y prctl(1).


Nota - En un sistema con zonas instaladas, no puede utilizar rctladm en una zona no global para modificar la configuración. Puede utilizar rctladm en una zona no global para ver el estado de registro global de cada control de recurso.


Controles de recursos disponibles

En la tabla siguiente se incluye una lista de los controles de recursos estándar disponibles en esta versión.

La tabla describe el recurso que limita cada control. Asimismo, identifica las unidades predeterminadas que utiliza la base de datos project para dicho recurso. Las unidades predeterminadas pueden ser de dos tipos:

De este modo, project.cpu-shares especifica el número de recursos compartidos a los que tiene derecho el proyecto. process.max-file-descriptor especifica el número máximo de archivos que se pueden asignar a un proceso mediante la llamada de sistema open(2).

Tabla 6-1 Controles de recursos de proyectos, tareas y procesos estándar

Nombre de control
Descripción
Unidad predeterminada
project.cpu-cap
Límite absoluto sobre la cantidad de recursos de la CPU que puede consumir un proyecto. Un valor de 100 significa el 100% de una CPU como opción de project.cpu-cap. Un valor de 125 es 125%, ya que el 100% corresponde a una CPU completa del sistema al utilizar el recurso cpu-cap.
Cantidad (número de CPU)
project.cpu-shares
Número de recursos compartidos de CPU concedidos a este proyecto para utilizar con el programador de reparto justo (consulte FSS(7)).
Cantidad (recursos compartidos)
project.max-crypto-memory
Cantidad total de memoria de núcleo que puede utilizar libpkcs11 para la aceleración criptográfica de hardware. Las asignaciones de búferes de núcleo y estructuras relativas a las sesiones se realizan para este control de recurso.
Tamaño (bytes)
project.max-locked-memory
Cantidad total de memoria física bloqueada permitida.

Si se asigna priv_proc_lock_memory a un usuario, procure configurar también este control de recurso para evitar que el usuario bloquee toda la memoria.

Tenga en cuenta que este control de recursos sustituye a project.max-device-locked-memory, que se ha eliminado.

Tamaño (bytes)
project.max-msg-ids
Número máximo de ID de cola de mensajes permitidos para este proyecto.
Cantidad (ID de cola de mensajes)
project.max-port-ids
Número máximo de puertos de eventos permitidos.
Cantidad (número de puertos de eventos)
project.max-processes
Número máximo de ranuras de tablas de procesos disponibles de forma simultánea para este proyecto.

Tenga en cuenta que, debido a que los procesos normales y los procesos zombie ocupan ranuras de tabla de procesos, el control max-processes protege contra los zombies que agotan la tabla de procesos. Debido a que los procesos zombie no tienen procesos ligeros por definición, el control max-lwps no puede proteger contra esta posibilidad.

Cantidad (ranuras de tabla de procesos)
project.max-sem-ids
Número máximo de ID de semáforo permitidos para este proyecto.
Cantidad (ID de semáforo)
project.max-shm-ids
Número máximo de ID de memoria compartida permitidos para este proyecto.
Cantidad (ID de memoria compartida)
project.max-shm-memory
Cantidad total de memoria compartida System V permitida para este proyecto.
Tamaño (bytes)
project.max-lwps
Número máximo de procesos ligeros disponibles de forma simultánea para este proyecto.
Cantidad (LWP)
project.max-tasks
Número máximo de tareas permitidas en este proyecto.
Cantidad (número de tareas)
project.max-contracts
Número máximo de contratos permitidos en este proyecto.
Cantidad (contratos)
task.max-cpu-time
Tiempo máximo de CPU disponible para los procesos de esta tarea.
Tiempo (segundos)
task.max-lwps
Número máximo de procesos ligeros disponibles de forma simultánea para los procesos de esta tarea.
Cantidad (LWP)
task.max-processes
Número máximo de ranuras de tablas de procesos disponibles de forma simultánea para los procesos de esta tarea.
Cantidad (ranuras de tabla de procesos)
process.max-cpu-time
Tiempo máximo de CPU disponible para este proceso.
Tiempo (segundos)
process.max-file-descriptor
Índice descriptor de archivos máximo disponible para este proceso.
Índice (descriptor de archivo máximo)
process.max-file-size
Desfase de archivo máximo disponible para escritura de este proceso.
Tamaño (bytes)
process.max-core-size
Tamaño máximo de archivo principal creado por este proceso.
Tamaño (bytes)
process.max-data-size
Memoria de pila máxima disponible para este proceso.
Tamaño (bytes)
process.max-stack-size
Segmento de memoria de pila máxima disponible para este proceso.
Tamaño (bytes)
process.max-address-space
Cantidad máxima de espacio de dirección, sumando los tamaños de segmentos, disponible para este proceso.
Tamaño (bytes)
process.max-port-events
Número de eventos máximo permitido por puerto de eventos.
Cantidad (número de eventos)
process.max-sem-nsems
Número máximo de semáforos permitidos por conjunto de semáforos.
Cantidad (semáforos por conjunto)
process.max-sem-ops
Número máximo de operaciones de semáforos permitidas por llamada semop (valor copiado del control de recursos en la hora de semget()).
Cantidad (número de operaciones)
process.max-msg-qbytes
Número máximo de bytes de mensajes en una cola de mensajes (valor copiado del control de recurso en la hora de msgget() ).
Tamaño (bytes)
process.max-msg-messages
Número máximo de mensajes en una cola de mensajes (valor copiado del control de recurso en la hora de msgget()).
Cantidad (número de mensajes)

Puede ver los valores predeterminados de los controles de recursos de un sistema que no tenga controles de recursos definidos ni cambiados. Dicho sistema no contiene entradas que no sean predeterminadas en /etc/system o la base de datos project. Para ver los valores, utilice el comando prctl.

Controles de recursos de la zona

Los controles de recursos de la zona limitan el uso total de los recursos de todas las entidades de procesos de una zona. Los controles de recursos de la zona también pueden configurarse utilizando los nombres de propiedades globales descritos en Configuración de controles de recursos de zonas y Cómo configurar la zona.

Tabla 6-2 Controles de recursos de zonas

Nombre de control
Descripción
Unidad predeterminada
zone.cpu-cap
Límite absoluto sobre la cantidad de recursos de la CPU que puede consumir una zona no global.

Un valor de 100 significa el 100% de una CPU como opción de project.cpu-cap. Un valor de 125 es 125%, ya que el 100% corresponde a una CPU completa del sistema al utilizar el recurso cpu-cap.

Cantidad (número de CPU)
zone.cpu-shares
Número de recursos compartidos de CPU del planificador de reparto justo (FSS) para esta zona
Cantidad (recursos compartidos)
zone.max-lofi
Número máximo de dispositivos lofi que una zona puede crear.

El valor limita el uso de espacio de nombres de nodo menor de cada zona.

Cantidad (número de dispositivos lofi)
zone.max-locked-memory
Cantidad total de memoria física bloqueada disponible para una zona.

Si se asigna priv_proc_lock_memory a una zona, procure configurar también este control de recurso para evitar que la zona bloquee toda la memoria.

Tamaño (bytes)
zone.max-lwps
Número máximo de procesos ligeros disponibles de forma simultánea para esta zona
Cantidad (LWP)
zone.max-msg-ids
Número máximo de ID de cola de mensajes permitidos para esta zona
Cantidad (ID de cola de mensajes)
zone.max-processes
Número máximo de ranuras de tablas de procesos disponibles de forma simultánea para esta zona.

Debido a que los procesos normales y los procesos zombie ocupan ranuras de tablas de procesos, el control max-processes protege contra los zombies que agotan la tabla de procesos. Debido a que los procesos zombie no tienen procesos ligeros por definición, el control max-lwps no puede proteger contra esta posibilidad.

Cantidad (ranuras de tabla de procesos)
zone.max-sem-ids
Número máximo de ID de semáforo permitidos para esta zona
Cantidad (ID de semáforo)
zone.max-shm-ids
Número máximo de ID de memoria compartida permitidos para esta zona
Cantidad (ID de memoria compartida)
zone.max-shm-memory
Cantidad total de memoria compartida System V permitida para esta zona
Tamaño (bytes)
zone.max-swap
Cantidad total de intercambio que pueden consumir las asignaciones de espacio de direcciones del proceso del usuario y los montajes tmpfs para esta zona.
Tamaño (bytes)

Para obtener información sobre la configuración de controles de recursos de la zona, consulte Propiedades del tipo de recurso y Cómo configurar la zona.

Tenga en cuenta que es posible aplicar un control de recurso de la zona para la zona global. Consulte Uso del programador de reparto justo en un sistema Oracle Solaris con zonas instaladas para obtener información adicional.

Compatibilidad con unidades

Los indicadores globales que identifican los tipos de controles de recursos se definen para todos los controles de recursos. El sistema utiliza los indicadores para comunicar la información de tipo básico a las aplicaciones como el comando prctl. Las aplicaciones utilizan la información para determinar lo siguiente:

Hay disponibles los siguientes indicadores globales:

Indicador global
Cadena de tipo de control de recurso
Modificador
Escala
RCTL_GLOBAL_BYTES
bytes
B
1
KB
210
MB
220
GB
230
TB
240
PB
250
EB
260
RCTL_GLOBAL_SECONDS
segundos
s
1
Ks
103
Sra.
106
Gs
109
Ts
1012
Ps
1015
Es
1018
RCTL_GLOBAL_COUNT
número
none
1
K
103
M
106
G
109
T
1012
P
1015
E
1018

Pueden utilizarse valores a escala con los controles de recursos. El ejemplo siguiente muestra un valor umbral a escala:

task.max-lwps=(priv,1K,deny)

Nota - Los comandos prctl, projadd y projmod aceptan modificadores de unidades. No puede utilizar modificadores de unidades en la base de datos project.


Valores de controles de recursos y niveles de privilegio

Un valor umbral en un control de recursos constituye un punto de aplicación en el que se pueden desencadenar acciones locales o globales, como registros.

Cada valor umbral de un control de recursos debe asociarse con un nivel de privilegio. El nivel de privilegio debe ser de uno de estos tres tipos.

Se garantiza que un control de recurso tiene un valor de sistema, definido por el sistema, o un proveedor de recursos. El valor del sistema representa qué cantidad del recurso es capaz de proporcionar la implementación actual del sistema operativo.

Puede definirse cualquier número de valores con privilegio, y sólo se permite un valor básico. A las operaciones que se llevan a cabo sin especificar un valor de privilegio se les asigna de forma predeterminada un privilegio básico.

El nivel de privilegio para un valor de control de recurso se define en el campo de privilegio del bloque de control de recurso como RCTL_BASIC, RCTL_PRIVILEGED o RCTL_SYSTEM. Consulte setrctl(2) para obtener más información. Puede utilizar el comando prctl para modificar los valores asociados con los niveles básico y con privilegios.

Acciones locales y globales en valores de controles de recursos

Hay dos categorías de acciones en los valores de controles de recursos: globales y locales.

Acciones globales en valores de controles de recursos

Las acciones globales se aplican a los valores de controles de recursos para cada control de recurso del sistema. Puede utilizar el comando rctladm que se describe en la página del comando man rctladm(1M) para llevar a cabo las acciones siguientes:

Puede desactivar o activar la acción de registro global en los controles de recursos. Es posible definir la acción syslog hasta un grado específico asignando un nivel de gravedad, syslog=nivel. Las posibles configuraciones de nivel son:

De modo predeterminado, no hay ningún registro global de los conflictos de controles de recursos. El nivel n/a indica los controles de recursos en los que no se puede configurar ninguna acción global.

Acciones locales en valores de controles de recursos

Las acciones locales se llevan a cabo en un proceso que intenta exceder el valor de control. Para cada valor umbral que se coloca en un control de recurso, puede asociar una o más acciones. Hay tres tipos de acciones locales: none, deny y signal=. Estas tres acciones se utilizan del modo siguiente:

none

No se emprende ninguna acción en las solicitudes de recursos para una cantidad que supere el umbral. Esta acción resulta útil para supervisar el uso de los recursos sin que ello afecte al progreso de las aplicaciones. También puede activar un mensaje global que se muestre al superar el control de recurso, aunque el proceso que supera el umbral no se vea afectado.

deny

Puede denegar las solicitudes de recursos para una cantidad que supere el umbral. Por ejemplo, un control de recurso task.max-lwps con la acción deny hace que la llamada de sistema fork falle si el nuevo proceso supera el valor de control. Consulte la página del comando man fork(2).

signal=

Puede activar una acción de mensaje de señal global cuando se supera el control de recurso. Se envía una señal al proceso cuando se supera el valor umbral. No se envían señales adicionales si el proceso consume recursos adicionales. En la Tabla 6-3 se enumeran las señales disponibles.

No se pueden aplicar todas las acciones a cada control de recurso. Por ejemplo, un proceso no puede superar el número de recursos compartidos de CPU asignados al proyecto del cual es miembro. Por tanto, no se permite una acción de denegación en el control de recurso project.cpu-shares.

Debido a la restricción de la implementación, las propiedades globales de cada control pueden restringir el intervalo de acciones disponibles que se pueden configurar en el valor umbral. (Consulte la página del comando man rctladm(1M) En la tabla siguiente se presenta una lista de las acciones de señales disponibles. Para obtener información adicional sobre las señales, consulte la página del comando man signal(3HEAD).

Tabla 6-3 Señales disponibles para los valores de controles de recursos

Señal
Descripción
Notas
SIGABRT
Finaliza el proceso.
SIGHUP
Envía una señal de colgar. Tiene lugar cuando el portador se encuentra en una línea abierta. La señal se envía al grupo de proceso que controla el terminal.
SIGTERM
Finaliza el proceso. Señal de finalización que envía el software.
SIGKILL
Finaliza el proceso y cierra el programa.
SIGSTOP
Detiene el proceso. Señal de control del trabajo.
SIGXRES
Límite de control de recurso superado. Lo genera la función de control de recurso.
SIGXFSZ
Finaliza el proceso. Límite de tamaño de archivo superado.
Disponible sólo para los controles de recursos con la propiedad RCTL_GLOBAL_FILE_SIZE (process.max-file-size). Consulte rctlblk_set_value(3C) para obtener más información.
SIGXCPU
Finaliza el proceso. Límite de tiempo de CPU superado.
Disponible sólo para los controles de recursos con la propiedad RCTL_GLOBAL_CPUTIME (process.max-cpu-time). Consulte rctlblk_set_value(3C) para obtener más información.

Propiedades e indicadores de controles de recursos

Cada control de recurso del sistema tiene un grupo determinado de propiedades asociadas. Este conjunto de propiedades se define como un conjunto de indicadores, asociados con todas las instancias controladas de dicho recurso. Los indicadores globales no se pueden modificar, pero se pueden recuperar utilizando las llamadas de sistema rctladm o getrctl.

Los indicadores globales definen el comportamiento predeterminado y la configuración de un valor umbral específico de dicho control de recurso en un proceso específico o colectivo. Los indicadores locales de un valor umbral no afectan al comportamiento de otros valores umbral definidos para el mismo control de recurso. Sin embargo, los indicadores globales afectan al comportamiento de cada valor asociado con un control particular. Los indicadores locales pueden modificarse, dentro de los límites establecidos por sus indicadores globales correspondientes, mediante el comando prctl o la llamada de sistema setrctl. Consulte setrctl(2).

Para ver una lista completa de los indicadores locales y sus definiciones, consulte rctlblk_set_value(3C).

Para determinar el comportamiento del sistema cuando se alcanza un valor umbral para un control de recurso concreto, utilice rctladm para ver los indicadores globales para el control de recurso. Por ejemplo, para ver los valores de process.max-cpu-time, escriba lo siguiente:

$ rctladm process.max-cpu-time
    process.max-cpu-time  syslog=off  [ lowerable no-deny cpu-time inf seconds ]

Los indicadores globales significan lo siguiente.

lowerable

No se requieren privilegios de superusuario para reducir los valores con privilegios para este control.

no-deny

Nunca se deniega el acceso al recurso, ni siquiera cuando se superan los valores umbral.

cpu-time

SIGXCPU está disponible para su envío cuando se alcanzan los valores umbral de este recurso.

seconds

Valor de tiempo para el control de recurso.

no-basic

Los valores de control de recurso con el tipo de privilegio basic no se pueden establecer. Sólo se permiten valores de control de recurso con privilegios.

no-signal

Una acción de señal local no se puede establecer en valores de control de recurso.

no-syslog

La acción de mensaje syslog global no se puede establecer para este control de recurso.

deny

Siempre que se sobrepasen los valores de umbral, deniegue la solicitud de recursos.

count

Valor (entero) de cantidad para el control de recurso.

bytes

Unidad de tamaño de control de recurso.

Utilice el comando prctl para ver las acciones y los valores locales para el control de recurso.

$ prctl -n process.max-cpu-time $$
    process 353939: -ksh
    NAME    PRIVILEGE    VALUE    FLAG   ACTION              RECIPIENT
 process.max-cpu-time
         privileged   18.4Es    inf   signal=XCPU                 -
         system       18.4Es    inf   none 

El indicador max (RCTL_LOCAL_MAXIMAL) se configura para ambos valores umbral, y el indicador inf (RCTL_GLOBAL_INFINITE) se define para este control de recurso. Un valor inf tiene una cantidad infinita. El valor nunca se aplica. Por ello, ambas cantidades umbral representan valores infinitos que nunca se superan.

Aplicación de controles de recursos

Un recurso puede tener más de un control de recurso. Puede haber un control de recurso en cada nivel de contenido en el modelo de proceso. Si hay controles de recursos activos en el mismo recurso en diferentes niveles de contenido, se aplicará en primer lugar el control del contenedor más pequeño. De este modo, la acción se lleva a cabo en process.max-cpu-time antes que en task.max-cpu-time si ambos controles se encuentran de forma simultánea.

Figura 6-1 Procesos colectivos, relaciones de contenedores y sus conjuntos de controles de recursos

image:El diagrama muestra la aplicación de cada control de recurso y su nivel de contenido.

Supervisión global de los eventos de controles de recursos

A menudo, se desconoce el consumo de recursos de los procesos. Para obtener más información, utilice las acciones de control de recursos globales disponibles con el comando rctladm. Utilice rctladm para establecer una acción syslog en un control de recursos. A continuación, si una entidad administrada por dicho control de recurso se encuentra con un valor umbral, se registra un mensaje del sistema en el nivel de registro configurado. Si desea más información, consulte el Capítulo 7, Administración de controles de recursos (tareas) y la página del comando man rctladm(1M).