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

Capítulo 12 Agrupaciones de recursos (descripción general)

Este capítulo abarca las siguientes funciones:

A partir de la versión Solaris 10 11/06, las agrupaciones de recursos y las agrupaciones de recursos dinámicos son servicios de la Utilidad de gestión de servicios (SMF) de Solaris. Cada uno de estos servicios se activa por separado.

En este capítulo, se describen los siguientes temas:

Para conocer los procedimientos para usar esta función, consulte el Capítulo 13Creación y administración de agrupaciones de recursos (tareas).

Novedades de las agrupaciones de recursos y las agrupaciones de recursos dinámicos

Solaris 10: las agrupaciones de recursos proporcionan ahora un mecanismo para ajustar la asignación de recursos de cada agrupación como respuesta a los eventos del sistema y los cambios de carga de la aplicación. Las agrupaciones de recursos dinámicos simplifican y reducen el número de decisiones que debe tomar un administrador. Se realizan ajustes automáticamente para mantener los objetivos de rendimiento del sistema que especifica un administrador.

Ahora puede utilizar el comando projmod para definir el atributo project.pool en el archivo /etc/project.

Para ver una lista completa de las nuevas funciones de Solaris 10 y una descripción de las versiones de Solaris, consulte Novedades de Oracle Solaris 10 9/10.

Solaris 10 11/06: Las agrupaciones de recursos y las agrupaciones de recursos dinámicos son ahora servicios SMF.

Introducción a las agrupaciones de recursos

Las agrupaciones de recursos permiten separar cargas de trabajo para que el consumo de carga de trabajo de determinados recursos no se superponga. Esta reserva de los recursos permite obtener un rendimiento predecible en los sistemas con cargas de trabajo mixtas.

Las agrupaciones de recursos proporcionan un mecanismo de configuración persistente para la configuración del conjunto de procesadores (pset) y, opcionalmente, la planificación de la asignación de clases.

Figura 12–1 Estructura de la agrupación de recursos

La ilustración muestra que una agrupación está compuesta de un conjunto de procesadores y, opcionalmente, una clase de planificación.

Una agrupación puede considerarse una vinculación específica de los diferentes conjuntos de recursos que están disponibles en el sistema. Puede crear agrupaciones que representen diferentes tipos de combinaciones de recursos posibles:

pool1: pset_default

pool2: pset1

pool3: pset1, pool.scheduler="FSS"

Al agrupar varias particiones, las agrupaciones pueden asociarse con las cargas de trabajo etiquetadas. Cada entrada de proyecto del archivo /etc/project puede tener asociada una única agrupación, que se especifica mediante el atributo project.pool.

Si las agrupaciones están activas, la configuración básica se establece mediante una agrupación predeterminada y un conjunto de procesadores predeterminado. Pueden crearse y añadirse a la configuración agrupaciones definidas por el usuario y conjuntos de procesadores adicionales. Una CPU sólo puede pertenecer a un conjunto de procesadores. Los conjuntos de procesadores y agrupaciones definidas por el usuario se pueden destruir. El conjunto de procesadores y la agrupación que se han configurado de forma predeterminada no se pueden destruir.

La agrupación predeterminada tiene la propiedad pool.default configurada como true. El conjunto de procesadores tiene la propiedad pset.default configurada como true. De este modo, pueden identificarse tanto la agrupación como el conjunto de procesadores predeterminados aunque sus nombres hayan cambiado.

El mecanismo de agrupaciones definidas por el usuario se utiliza principalmente en grandes equipos con más de una CPU. Sin embargo, los equipos pequeños también pueden aprovechar esta función. En el caso de los equipos pequeños, puede crear agrupaciones que compartan particiones de recursos no críticos. Las agrupaciones sólo se separan basándose en los recursos críticos.

Introducción a las agrupaciones de recursos dinámicos

Las agrupaciones de recursos dinámicos proporcionan un mecanismo para ajustar dinámicamente la asignación de recursos de cada agrupación como respuesta a los eventos del sistema y los cambios de carga de la aplicación. Las DRP simplifican y reducen el número de decisiones que debe tomar un administrador. Se realizan ajustes automáticamente para mantener los objetivos de rendimiento del sistema que especifica un administrador. Los cambios realizados en la configuración se registran. Estas funciones se realizan principalmente a través del controlador de recursos poold, un daemon de sistema que siempre debería estar activo si se requiere la asignación de recursos dinámicos. De forma periódica, poold examina la carga en el sistema y determina si se requiere una intervención para permitir que el sistema mantenga un rendimiento óptimo en lo que se refiere al consumo de recursos. La configuración de poold se realiza en la configuración de libpool. Para obtener más información sobre poold, consulte la página del comando man poold(1M).

Activación y desactivación de agrupaciones de recursos y agrupaciones de recursos dinámicos

Para activar y desactivar las agrupaciones de recursos y agrupaciones de recursos dinámicos, consulte Activación y desactivación de la función de agrupaciones.

Agrupaciones de recursos utilizadas en zonas


Consejo –

Solaris 10 8/07: Como alternativa a la asociación de una zona con una agrupación de recursos del sistema, puede utilizar el comando zonecfg para crear una agrupación temporal vigente mientras se ejecuta la zona. Consulte Solaris 10 8/07: recurso dedicated-cpu para obtener más información.


En un sistema con zonas activas, puede asociarse una zona no global con una agrupación de recursos, aunque no es necesario que la agrupación esté asignada exclusivamente a una zona concreta. Asimismo, no puede vincular procesos individuales en zonas no globales a una agrupación diferente utilizando el comando poolbind desde la zona global. Para asociar una zona no global con una agrupación, consulte Configuración, verificación y confirmación de una zona.

Observe que si configura una clase de programación para una agrupación y asocia una zona no global con dicha agrupación, la zona utiliza dicha clase de planificación de forma predeterminada.

Si utiliza agrupaciones de recursos dinámicos, el ámbito de una instancia de poold en ejecución se limita a la zona global.

Si la utilidad poolstat se ejecuta en una zona no global muestra sólo información sobre la agrupación asociada con la zona. El comando pooladm ejecutado sin argumentos en una zona no global muestra sólo información sobre la agrupación asociada con la zona.

Para obtener información sobre los comandos de agrupaciones de recursos, consulte Comandos utilizados con la función de agrupaciones de recursos.

Cuándo se utilizan las agrupaciones

Las agrupaciones de recursos ofrecen un mecanismo versátil que se puede aplicar a múltiples situaciones administrativas.

Servidor de cálculo por lotes

Utilice la función de agrupaciones para dividir un servidor en dos agrupaciones. Se utiliza una agrupación para las sesiones de inicio de sesión y el trabajo interactivo de los usuarios que comparten el tiempo. La otra agrupación se utiliza para los trabajos que se envían a través del sistema por lotes.

Servidor de base de datos o aplicación

Particione los recursos de las aplicaciones interactivas de acuerdo con los requisitos de las aplicaciones.

Activación de las aplicaciones por fases

Defina las expectativas del usuario.

Puede implementar inicialmente un equipo que ejecute sólo una fracción de los servicios que se espera que la máquina ofrezca en último término. El usuario puede tener dificultades si no se establecen mecanismos de administración de los recursos basados en las reservas cuando el equipo está en línea.

Por ejemplo, el programador de reparto justo optimiza el uso de la CPU. Los tiempos de respuesta de un equipo en el que sólo se ejecuta una aplicación pueden ser rápidos de manera equívoca. Los usuarios no verán estos tiempos de respuesta con varias aplicaciones cargadas. Al utilizar diferentes agrupaciones para cada aplicación, puede colocar un máximo para el número de CPU disponibles para cada aplicación antes de implementar todas las aplicaciones.

Servidor de tiempo compartido complejo

Particione un servidor que admite grandes cantidades de usuarios. La partición del servidor proporciona un mecanismo de aislamiento que conduce a una respuesta por usuario más predecible.

Al dividir a los usuarios en grupos que se vinculan a agrupaciones diferentes, y utilizar el programador de reparto justo (FSS), puede configurar las asignaciones de CPU para favorecer a los conjuntos de usuarios que tengan prioridad. Esta asignación puede basarse en el rol del usuario, el contracargo, etc.

Cargas de trabajo que cambian temporalmente

Utilice agrupaciones de recursos para adaptarse a las variaciones en la demanda.

El sitio puede experimentar cambios predecibles en la demanda de carga de trabajo durante largos períodos de tiempo, por ejemplo cada mes, cada trimestre o cada año. Si su sitio experimenta dichos cambios, puede alternar entre varias configuraciones de agrupaciones invocando pooladm desde un trabajo cron. (Consulte Estructura de agrupaciones de recursos.)

Aplicaciones en tiempo real

Cree una agrupación en tiempo real utilizando el programador RT y recursos de procesador designados.

Uso del sistema

Aplique los objetivos del sistema que establezca.

Utilice la función de daemon de agrupaciones automatizadas para identificar los recursos disponibles y luego supervisar las cargas de trabajo con el fin de detectar el momento en que dejan de cumplirse los objetivos especificados. El daemon puede emprender la acción correctiva, si es posible, o puede registrarse la condición.

Estructura de agrupaciones de recursos

El archivo de configuración /etc/pooladm.conf describe la configuración de las agrupaciones estáticas. Una configuración estática representa el modo en que un administrador desea configurar un sistema con respecto a la funcionalidad de las agrupaciones de recursos. Puede especificarse un nombre de archivo alternativo.

Cuando se utiliza el comando pooladm - e o la Utilidad de gestión de servicios (SMF) para activar la estructura de agrupaciones de recursos, si existe un archivo /etc/pooladm.conf, la configuración que contiene el archivo se aplica al sistema.

El kernel contiene información sobre la disposición de los recursos en la estructura de las agrupaciones de recursos. Esto se conoce como configuración dinámica, y representa la función de agrupaciones de recursos para un sistema concreto en un determinado momento. La configuración dinámica puede visualizarse con el comando pooladm. Tenga en cuenta que el orden en el que se muestran las propiedades para las agrupaciones y conjuntos de recursos puede variar. Las modificaciones en la configuración dinámica se realizan de los siguientes modos:

Puede haber más de un archivo de configuración de agrupaciones estáticas, para su activación en diferentes momentos. Puede alternar entre múltiples configuraciones de agrupaciones invocando pooladm desde un trabajo cron. Consulte la página del comando man cron(1M) para obtener más información sobre la utilidad cron.

De modo predeterminado, la estructura de las agrupaciones de recursos no está activa. Las agrupaciones de recursos deben activarse para crear o modificar la configuración dinámica. Los archivos de configuración estática pueden manipularse con los comandos poolcfg o libpool aunque la estructura de las agrupaciones de recursos esté desactivada. Los archivos de configuración estática no se pueden crear si no está activa la función de agrupaciones. Para obtener más información sobre el archivo de configuración, consulte Creación de configuraciones de agrupaciones.

Los comandos utilizados con las agrupaciones de recursos y el daemon de sistema poold se describen en las siguientes páginas del comando man:

Contenido de /etc/pooladm.conf

Todas las configuraciones de agrupaciones de recursos, incluida la configuración dinámica, pueden contener los elementos siguientes.

system

Propiedades que afectan al comportamiento global del sistema

agrupación

Definición de una agrupación de recursos

pset

Definición de un conjunto de procesadores

cpu

Definición de un procesador

Todos estos elementos tienen propiedades que se pueden modificar para cambiar el comportamiento de la estructura de las agrupaciones de recursos. Por ejemplo, la propiedad de agrupación pool.importance indica la importancia relativa de una agrupación concreta. Esta propiedad se utiliza para la posible resolución de conflictos relativos a los recursos. Para obtener más información, consulte libpool(3LIB).

Propiedades de agrupaciones

La utilidad de agrupaciones admite propiedades con nombre escritas que se pueden colocar en una agrupación, un recurso o un componente. Los administradores pueden almacenar propiedades adicionales en los distintos elementos de la agrupación. Se utiliza un espacio de nombre de propiedad similar al atributo del proyecto.

Por ejemplo, el siguiente comentario indica que se asocia un pset concreto con una base de datos Datatree específica.

Datatree,pset.dbname=warehouse

Para obtener más información sobre los tipos de propiedades, consulte Propiedades de poold.


Nota –

Se ha reservado una serie de propiedades especiales para uso interno y no se pueden configurar ni eliminar. Consulte la página del comando man libpool(3LIB) para obtener más información.


Implementación de agrupaciones en un sistema

Pueden implementarse agrupaciones definidas por el usuario en un sistema utilizando uno de los métodos siguientes.

Para obtener información sobre la activación y desactivación de agrupaciones de recursos, consulte Activación y desactivación de la función de agrupaciones. La función de agrupaciones no puede desactivarse cuando se están utilizando agrupaciones o recursos definidos por el usuario.

Para configurar las agrupaciones de recursos, debe tener privilegios de superusuario o el perfil de administración de procesos en la lista de perfiles. El rol de administrador del sistema incluye el perfil de administración de procesos.

El controlador de recursos poold se inicia con la función de agrupación de recursos dinámicos.

Atributo project.pool

Puede añadirse el atributo project.pool a una entrada de proyecto del archivo /etc/project para asociar una única agrupación con dicha entrada. Los nuevos trabajos que se inicien en un proyecto estarán vinculados a la agrupación adecuada. Consulte el Capítulo 2Proyectos y tareas (información general) para obtener más información.

Por ejemplo, puede utilizar el comando projmod para definir el atributo project.pool para el proyecto sales en el archivo /etc/project:


# projmod -a -K project.pool=mypool sales

SPARC: Agrupaciones de recursos y operaciones de reconfiguración dinámica

La reconfiguración dinámica (DR) permite reconfigurar el hardware mientras se ejecuta el sistema. Una operación de DR puede aumentar, reducir o no tener ningún efecto sobre un tipo de recurso específico. Dado que la DR puede afectar a las cantidades de recursos disponibles, la función de agrupaciones debe incluirse en estas operaciones. Cuando se inicia una operación de DR, la estructura de las agrupaciones actúa para validar la configuración.

Si el funcionamiento de DR puede continuar sin que la configuración de las agrupaciones actuales deje de ser válida, se actualiza el archivo de configuración privado. Un archivo de configuración no válido es aquél que no admiten los recursos disponibles.

Si el funcionamiento de DR hace que la configuración de las agrupaciones deje de ser válida, se producirá un error y se notificará mediante un mensaje en el registro de mensajes. Si desea forzar la finalización de la configuración, debe utilizar la opción de forzado de DR. La configuración de las agrupaciones se modifica para cumplir la nueva configuración del recurso. Para obtener información sobre el proceso de DR y la opción de forzado, consulte la guía del usuario sobre reconfiguración dinámica para el hardware de Sun.

Si utiliza agrupaciones de recursos dinámicas, tenga en cuenta que es posible que una partición quede fuera del control de poold mientras el daemon está activo. Para más información, consulte Identificación de recursos insuficientes.

Creación de configuraciones de agrupaciones

El archivo de configuración contiene una descripción de las agrupaciones que se crearán en el sistema. El archivo describe los elementos que se pueden manipular.

Consulte poolcfg(1M) para obtener más información sobre los elementos que se manipulan.

Si las agrupaciones están activadas, puede crear un archivo /etc/pooladm.conf estructurado de dos modos.

Utilice poolcfg o libpool para modificar el archivo /etc/pooladm.conf. No edite directamente este archivo.

Manipulación directa de la configuración dinámica

Los tipos de recursos de la CPU de la configuración dinámica se pueden manipular directamente utilizando el comando poolcfg con la opción -d. Existen dos métodos para transferir los recursos.

Por ejemplo, consulte Transferencia de recursos.

Tenga en cuenta que la transferencia de recursos podría desencadenar una acción de poold. Consulte Descripción general de poold para obtener más información.

Descripción general de poold

El controlador de recursos de las agrupaciones, poold, utiliza objetivos del sistema y estadísticas observables para mantener los objetivos de rendimiento del sistema que especifique. El daemon del sistema siempre debe estar activo cuando se requiere la asignación de recursos dinámica.

El controlador de recursos poold identifica los recursos disponibles y luego supervisa las cargas de trabajo con el fin de determinar cuándo dejan de cumplirse los objetivos de uso del sistema. poold considera configuraciones alternativas en términos de objetivos y emprende las acciones correctivas oportunas. Si es posible, los recursos se vuelven a configurar para poder cumplir los objetivos. Si no se pueden emprender las acciones correctivas, el daemon registra que no se pueden seguir cumpliendo los objetivos especificados por el usuario. Tras una reconfiguración, el daemon reanuda la supervisión de los objetivos de la carga de trabajo.

poold mantiene un historial de las decisiones que puede consultar. El historial de decisiones permite eliminar las reconfiguraciones que no conllevan mejoras.

Tenga en cuenta que también se puede desencadenar una reconfiguración de forma asíncrona si se modifican los objetivos de la carga de trabajo o los recursos disponibles para el sistema.

Administración de agrupaciones de recursos dinámicos

El servicio de agrupaciones de recursos dinámicos lo administra la Utilidad de gestión de servicios (SMF) con el identificador de servicio svc:/system/pools/dynamic.

Las acciones administrativas de este servicio, como la activación, la desactivación o la solicitud de reinicio, pueden llevarse a cabo con el comando svcadm. El comando svcs permite consultar el estado del servicio. Consulte las páginas del comando man svcs(1) y svcadm(1M) para obtener más información.

La interfaz de SMF es el método recomendado para controlar las agrupaciones de recursos dinámicos, pero también se siguen otros métodos para conseguir compatibilidad con versiones anteriores.

Objetivos y restricciones de configuración

Al realizar cambios en una configuración, poold actúa en las indicaciones que proporciona. Estas indicaciones se especifican como una serie de objetivos y restricciones. poold utiliza las especificaciones para determinar el valor relativo de las diferentes posibilidades de configuración en relación con la configuración existente. poold luego cambia las asignaciones de recursos de la configuración actual para generar nuevas configuraciones candidatas.

Restricciones de la configuración

Las restricciones afectan al intervalo de posibles configuraciones al eliminar algunos de los posibles cambios que pueden realizarse en una configuración. Están disponibles las siguientes restricciones, que se especifican en la configuración de libpool.

Consulte la página del comando man libpool(3LIB) y Propiedades de agrupaciones para obtener más información sobre las propiedades de las agrupaciones.

Propiedad pset.min y restricciones de la propiedad pset.max

Estas dos propiedades establecen los límites para la cantidad de procesadores que se pueden asignar a un conjunto, tanto el máximo como el mínimo. Consulte la Tabla 12–1 para obtener más información sobre estas propiedades.

Dentro de estas restricciones, los recursos de la partición están disponibles para su asignación a otras particiones de recursos de la misma instancia de Solaris. El acceso al recurso se obtiene vinculando una agrupación asociada con el conjunto de recursos. La vinculación se lleva a cabo durante el inicio de sesión o la realiza manualmente un administrador que tenga el privilegio PRIV_SYS_RES_CONFIG.

Restricción de la propiedad cpu.pinned

La propiedad cpu-pinned indica que las asignaciones de recursos dinámicos no deben mover una CPU específica del conjunto de procesadores en el que se encuentra. Puede configurar esta propiedad libpool para maximizar el uso de caché para una aplicación específica que se ejecuta dentro de un conjunto de procesadores.

Consulte la Tabla 12–1 para obtener más información sobre esta propiedad.

Restricción de la propiedad pool.importance

La propiedad pool.importance describe la importancia relativa de una agrupación según lo establecido por el administrador.

Objetivos de la configuración

Los objetivos se especifican de un modo similar a las restricciones. El conjunto completo de objetivos se describe en la Tabla 12–1.

Existen dos categorías de objetivos.

Dependientes de la carga de trabajo

Un objetivo dependiente de la carga de trabajo es un objetivo que varía según la naturaleza de la carga de trabajo que se ejecuta en el sistema. Un ejemplo es el objetivo de utilization. La cifra de utilización de un conjunto de recursos varía según la naturaleza de la carga de trabajo que hay activa en el conjunto.

Independientes de la carga de trabajo

Un objetivo independiente de la carga de trabajo es un objetivo que no varía según la naturaleza de la carga de trabajo que se ejecuta en el sistema. Un ejemplo es el objetivo de locality de la CPU. La medida de localidad evaluada para un conjunto de recursos no varía según la naturaleza de la carga de trabajo que está activa en el conjunto.

Puede definir tres tipos de objetivos.

Nombre 

Elementos válidos 

operadores 

Valores 

wt-load

system

N/D 

N/D 

locality

pset

N/D 

loose | tight | none

utilization

pset

< > ~

0100%

Los objetivos se almacenan en las cadenas de propiedad de la configuración de libpool. Los nombres de propiedad son los siguientes:

Los objetivos tienen la siguiente sintaxis:

Todos los objetivos adoptan un prefijo de importancia opcional. La importancia actúa como multiplicador del objetivo y, por tanto, aumenta el significado de su contribución a la evaluación de la función de objetivos. El valor puede estar entre 0 y INT64_MAX (9223372036854775807). Si no se especifica, el valor predeterminado de importancia es de 1.

Algunos tipos de elementos admiten más de un tipo de objetivo. Un ejemplo es pset. Puede especificar varios tipos de objetivos para estos elementos. También puede especificar varios objetivos de utilización en un único elemento pset.

Consulte Cómo definir los objetivos de configuración para ver algunos ejemplos de uso.

Objetivo de wt-load

El objetivo de wt-load favorece configuraciones que asocian asignaciones de recursos con utilizaciones de recursos. A un conjunto de recursos que utiliza más recursos se le asignan más recursos cuando este objetivo está activo. wt-load significa carga ponderada.

Este objetivo se utiliza cuando se está conforme con las restricciones que se han establecido utilizando las propiedades mínima y máxima, y se desea que el daemon manipule los recursos libremente dentro de dichas restricciones.

El objetivo locality

El objetivo locality influye en el impacto que tiene la localidad, medida por los datos de grupo de localidad (lgroup), en la configuración seleccionada. La latencia es otro modo de definir la localidad. lgroup describe los recursos de memoria y CPU. El sistema Solaris utiliza lgroup para determinar la distancia entre recursos, y el tiempo como medición. Para obtener más información sobre la abstracción del grupo de localidad, consulte Locality Groups Overview de Programming Interfaces Guide.

Este objetivo puede adoptar uno de los tres valores siguientes:

tight

Si se configura, se favorecen las configuraciones que maximizan la localidad de los recursos.

loose

Si se configura, se favorecen las configuraciones que minimizan la localidad de los recursos.

none

Si se configura, no se favorece ninguna configuración basándose en la localidad de los recursos. Se trata del valor predeterminado para el objetivo locality.

En general, el objetivo locality debe configurarse como tight. Sin embargo, para maximizar el ancho de banda de la memoria o minimizar el impacto de las operaciones de recursos dinámicos en un conjunto de recursos, puede configurar este objetivo como loose o dejar la configuración predeterminada de none.

Objetivo utilization

El objetivo utilization favorece configuraciones que asignan recursos a particiones que no cumplen el objetivo de utilización especificado.

Este objetivo se especifica utilizando operadores y valores. Los operadores son los siguientes:

<

El operador "menor que" indica que el valor especificado representa un valor de destino máximo.

>

El operador "mayor que" indica que el valor especificado representa un valor de destino mínimo.

~

El operador "similar" indica que el valor especificado es un valor de destino para el que se acepta cierta fluctuación.

Pset sólo puede tener configurado un objetivo de utilización para cada tipo de operador.

Puede definir los operadores < y > a la vez para crear un intervalo. Los valores se validarán para asegurarse de que no se solapen.

Ejemplo de objetivos de configuración

En el ejemplo siguiente, poold evaluará estos objetivos para pset:


Ejemplo 12–1 Ejemplo de objetivos de poold

pset.poold.objectives "utilization > 30; utilization < 80; locality tight"


Consulte Cómo definir los objetivos de configuración para ver algunos ejemplos de uso adicionales.

Propiedades de poold

Hay cuatro categorías de propiedades:

Tabla 12–1 Nombres de propiedad definidos

Nombre de propiedad 

Tipo 

Category 

Descripción 

system.poold.log-level

cadena 

Configuración 

Nivel de registro 

system.poold.log-location

cadena 

Configuración 

Ubicación de registro 

system.poold.monitor-interval

uint64 

Configuración 

Intervalo de muestra de supervisión 

system.poold.history-file

cadena 

Configuración 

Ubicación de historial de decisiones 

pset.max

uint64 

Restricción 

Número máximo de CPU para este conjunto de procesadores 

pset.min

uint64 

Restricción 

Número mínimo de CPU para este conjunto de procesadores 

cpu.pinned

bool 

Restricción 

CPU asociadas a este conjunto de procesadores 

system.poold.objectives

cadena 

Objetivo 

Cadena con formato de acuerdo con la sintaxis de expresión de objetivos de poold

pset.poold.objectives

cadena 

Objetivo 

Cadena con formato de acuerdo con la sintaxis de expresión de poold

pool.importance

int64 

Parámetro de objetivo 

Importancia asignada por el usuario 

Funciones de poold que pueden configurarse

Puede configurar estos aspectos del comportamiento del daemon.

Estas opciones se especifican en la configuración de las agrupaciones. También puede controlar el nivel de registro de la línea de comandos invocando poold.

Intervalo de supervisión de poold

Utilice el nombre de propiedad system.poold.monitor-interval para especificar un valor en milisegundos.

Información de registro de poold

En el registro se proporcionan tres categorías de información. Estas categorías se identifican en los registros:

Utilice el nombre de propiedad system.poold.log-level para especificar el parámetro de registro. Si no se especifica esta propiedad, el nivel de registro predeterminado es NOTICE. Los niveles de parámetros son jerárquicos. La configuración de un nivel de registro de DEBUG causará que poold registre todos los mensajes definidos. El nivel INFO proporciona un equilibrio útil de la información para la mayoría de los administradores.

En la línea de comandos, puede utilizar el comando poold con la opción -l y un parámetro para especificar el nivel de información de registro generada.

Hay disponibles los siguientes parámetros:

Los niveles de parámetros se asignan directamente a sus equivalentes de syslog. Consulte Ubicación de registro para más información sobre el uso de syslog.

Para obtener más información sobre cómo configurar el registro de poold, consulte Cómo establecer el nivel de registro de poold.

Registro de información de configuración

Pueden generarse los siguientes tipos de mensajes:

ALERT

Indica problemas para acceder a la configuración de libpool u otro error importante no previsto de la función libpool. Cierra el daemon y requiere una acción inmediata por parte del administrador.

CRIT

Problemas debidos a errores no previstos. Cierra el daemon y requiere una acción inmediata por parte del administrador.

ERR

Indica problemas con los parámetros especificados por el usuario que controlan el funcionamiento, como objetivos de utilización conflictivos que no se pueden resolver para un conjunto de recursos. Requiere la intervención del administrador para corregir los objetivos. poold intenta emprender las acciones correctivas omitiendo los objetivos conflictivos, pero algunos errores hacen que se cierre el daemon.

WARNING

Advertencias relativas a la configuración de parámetros que, aunque son técnicamente correctos, podrían no ser adecuados para el entorno de ejecución específico. Un ejemplo es marcar todos los recursos de la CPU como asociados, lo que significa que poold no puede mover los recursos de la CPU entre conjuntos de procesadores.

DEBUG

Mensajes que contienen la información detallada que se necesita al depurar el procesamiento de la configuración. Normalmente esta información no la utilizan los administradores.

Supervisión del registro de información

Pueden generarse los siguientes tipos de mensajes:

CRIT

Problemas debidos a fallos de supervisión no previstos. Cierra el daemon y requiere una acción inmediata por parte del administrador.

ERR

Problemas debidos a un error de supervisión no previsto. Podrían requerir una acción correctiva por parte del administrador.

NOTICE

Mensajes sobre las transiciones de regiones de control de recursos.

INFO

Mensajes sobre las estadísticas de uso de los recursos.

DEBUG

Mensajes que contienen la información detallada que se necesita al depurar el procesamiento de supervisión. Normalmente esta información no la utilizan los administradores.

Registro de información de optimización

Pueden generarse los siguientes tipos de mensajes:

WARNING

Podrían aparecer mensajes sobre problemas a la hora de tomar las decisiones correctas. Algunos ejemplos podrían incluir conjuntos de recursos demasiado restringidos por sus valores mínimo y máximo o por el número de componentes asociados.

Podrían mostrarse mensajes sobre problemas a la hora de realizar una reasignación óptima a causa de limitaciones imprevistas. Algunos ejemplos podrían conllevar la eliminación del último procesador del conjunto de procesadores que contiene un consumidor de recursos vinculado.

NOTICE

Mensajes sobre configuraciones utilizables o configuraciones que no se implementarán porque podrían solaparse los historiales de decisiones.

INFO

Mensajes sobre configuraciones alternativas que se toman en consideración.

DEBUG

Mensajes que contienen la información detallada que se necesita al depurar el procesamiento de optimización. Normalmente esta información no la utilizan los administradores.

Ubicación de registro

La propiedad system.poold.log-location se utiliza para especificar la ubicación de la salida registrada de poold. Puede especificar una ubicación de SYSLOG para la salida de poold (consulte syslog(3C)).

Si no se especifica esta propiedad, la ubicación predeterminada de la salida registrada de poold es /var/log/pool/poold.

Esta propiedad no se utiliza cuando se invoca poold desde la línea de comandos. Se escriben entradas de registro en stderr en el terminal que ejecuta el comando.

Administración de registros con logadm

Si poold está activo, el archivo logadm.conf incluye una entrada para administrar el archivo predeterminado /var/log/pool/poold. La entrada es:

/var/log/pool/poold -N -s 512k

Consulte las páginas del comando man logadm(1M) y logadm.conf(4).

Cómo funciona la asignación de recursos dinámicos

En esta sección se describe el proceso y los factores que utiliza poold para asignar recursos dinámicamente.

Acerca de los recursos disponibles

Los recursos disponibles se consideran todos los recursos disponibles para utilizar en el ámbito del proceso poold. El ámbito de control es como máximo una única instancia de Solaris.

En un sistema con zonas activas, el ámbito de una instancia de ejecución de poold está limitado a la zona global.

Determinación de recursos disponibles

Las agrupaciones de recursos abarcan todos los recursos del sistema que están disponibles para que las aplicaciones los consuman.

Para una única instancia de Solaris en ejecución, debe asignarse un recurso de un único tipo, como una CPU, a una sola partición. Puede haber una o más particiones para cada tipo de recurso. Cada partición contiene un conjunto de recursos único.

Por ejemplo, un equipo con cuatro CPU y dos conjuntos de procesadores puede tener la siguiente configuración:

pset 0: 0 1

pset 1: 2 3

donde 0, 1, 2 y 3 después de los dos puntos representan los ID de CPU. Tenga en cuenta que los dos conjuntos de procesadores representan las cuatro CPU.

El mismo equipo no puede tener la siguiente configuración:

pset 0: 0 1

pset 1: 1 2 3

No puede tener esta configuración porque la CPU 1 no puede aparecer en más de un pset a la vez.

No se puede acceder a los recursos desde una partición que no sea la partición a la que pertenecen.

Para conocer los recursos disponibles, poold interroga la configuración de las agrupaciones activas para buscar las particiones. Se resumen todos los recursos de todas las particiones para determinar la cantidad total de recursos disponibles para cada tipo de recurso que se controla.

Esta cantidad de recursos es la cifra básica que utiliza poold en sus operaciones. Sin embargo, esta cifra tiene restricciones que limitan la flexibilidad que tiene poold para realizar asignaciones. Para obtener información sobre las restricciones disponibles, consulte Restricciones de la configuración.

Identificación de recursos insuficientes

El ámbito de control para poold se define como el conjunto de recursos disponibles para los que poold tiene la responsabilidad principal de la administración y partición eficaces. No obstante, otros mecanismos que tienen permiso para manipular los recursos de este ámbito de control pueden seguir afectando a una configuración. Si debe colocar la partición fuera del control mientras poold está activo, poold intenta restaurar el control mediante la manipulación sensata de los recursos disponibles. Si poold no puede localizar los recursos adicionales dentro de su ámbito, el daemon registra información sobre los recursos insuficientes.

Determinación del uso de recursos

poold dedica la mayor parte del tiempo a observar el uso de los recursos en su ámbito de control. Esta supervisión se lleva a cabo para verificar que se cumplan los objetivos que dependen de la carga de trabajo.

Por ejemplo, para los conjuntos de procesadores, todas las mediciones se realizan en todos los procesadores de un conjunto. El uso de recursos muestra la proporción de tiempo que el recurso está en uso durante el intervalo de ejemplo. El uso del recurso se muestra como un porcentaje de 0 a 100.

Identificación de infracciones del control

Se utilizan las directivas que se describen en Objetivos y restricciones de configuración para detectar el fallo de enfoque de un sistema a la hora de cumplir sus objetivos. Estos objetivos están relacionados directamente con la carga de trabajo.

Una partición que no cumple los objetivos especificados por el usuario es una infracción de control. Los dos tipos de infracciones de control son la infracción síncrona y la infracción asíncrona.

Los siguientes eventos ocasiones infracciones de objetivos asíncronas:

Se da por sentado que las contribuciones de los objetivos que no están relacionados con la carga de trabajo permanecen constantes entre las evaluaciones de la función de objetivos. Los objetivos que no están relacionados con la carga de trabajo sólo se vuelven a evaluar cuando se desencadena una reevaluación mediante una de las infracciones asíncronas.

Determinación de la acción correctiva apropiada

Cuando el controlador de recursos determina que un consumidor de recursos tiene recursos insuficientes, la respuesta inicial es que el aumento de los recursos mejorará el rendimiento.

Se examinan y evalúan configuraciones alternativas que cumplan los objetivos especificados en la configuración para el ámbito de control.

Este proceso se perfecciona con el tiempo a medida que se supervisa el desplazamiento de los recursos y se evalúa la capacidad de respuesta de cada partición de recurso. Se consulta el historial de decisiones para eliminar las reconfiguraciones que no aportaron mejoras para conseguir la función del objetivo. Se utiliza otra información, como nombres de procesos y cantidades, para evaluar todavía más la importancia de los datos históricos.

Si el daemon no puede emprender las acciones correctivas, la condición se registra. Para obtener más información, consulte Información de registro de poold.

Uso de poolstat para supervisar la función de agrupaciones y el uso de los recursos

La utilidad poolstat permite supervisar el uso de los recursos cuando las agrupaciones están activas en el sistema. Esta utilidad examina de forma iterativa todas las agrupaciones activas en un sistema y muestra estadísticas basándose en el modo de salida seleccionado. Las estadísticas de poolstat permiten determinar qué particiones de recursos se utilizan de forma intensiva. Puede analizar estas estadísticas para tomar decisiones sobre la reasignación de recursos cuando el sistema está bajo presión a causa de los recursos.

La utilidad poolstat incluye opciones que se pueden utilizar para examinar agrupaciones específicas y mostrar estadísticas relativas al conjunto de recursos.

Si se implementan zonas en el sistema y utiliza poolstat en una zona no global, se muestra información sobre los recursos asociados con la agrupación de la zona.

Para obtener información adicional sobre la utilidad poolstat, consulte la página del comando man poolstat(1M) Para obtener información sobre la tarea poolstat y su uso, consulte Uso de poolstat para registrar estadísticas para los recursos relacionados con las agrupaciones.

Salida de poolstat

En el formato de salida predeterminado, poolstat crea una línea de cabecera y luego muestra una línea para cada agrupación. Una línea de agrupación empieza con el ID y el nombre de la agrupación, seguido de una columna de datos estadísticos sobre el conjunto de procesadores asociado a la agrupación. Los conjuntos de recursos asociados a más de una agrupación se enumeran varias veces, una para cada agrupación.

Las cabeceras de columnas son:

id

ID de la agrupación.

pool

Nombre de la agrupación.

rid

ID del conjunto de recursos.

rset

Nombre del conjunto de recursos.

type

Tipo del conjunto de recursos.

min

Tamaño mínimo del conjunto de recursos.

max

Tamaño máximo del conjunto de recursos.

size

Tamaño actual del conjunto de recursos.

used

Cantidad del conjunto de recursos que está en uso.

Este uso se calcula como un porcentaje de la utilización del conjunto de recursos multiplicado por el tamaño del conjunto de recursos. Si se ha reconfigurado un recurso durante el último intervalo de muestra, es posible que no se muestre este valor. Un valor no registrado aparece como un guión (-).

load

Representación absoluta de la carga que se coloca en el conjunto de recursos.

Para más información sobre esta propiedad, consulte la página del comando man libpool(3LIB).

Puede especificar lo siguiente en la salida de poolstat:

Ajuste de los intervalos de funcionamiento de poolstat

Puede personalizar las operaciones que lleva a cabo poolstat. Puede configurar el intervalo de muestreo para el informe y especificar el número de veces que se repiten las estadísticas:

intervalo

Ajuste los intervalos para las operaciones periódicas que lleva a cabo poolstat. Todos los intervalos se especifican en segundos.

count

Especifique el número de veces que se repiten las estadísticas. De modo predeterminado, poolstat sólo muestra las estadísticas una vez.

Si no se especifican intervalo ni número, las estadísticas sólo se muestran una vez. Si se especifica intervalo pero no número, las estadísticas se muestran de modo indefinido.

Comandos utilizados con la función de agrupaciones de recursos

Los comandos descritos en la tabla siguiente proporcionan la interfaz administrativa principal para la función de agrupaciones. Para obtener información sobre el uso de estos comandos en un sistema con zonas activadas, consulte Agrupaciones de recursos utilizadas en zonas.

Referencia de página del comando man 

Descripción 

pooladm(1M)

Activa o desactiva la función de agrupaciones en el sistema. Activa una configuración específica o elimina la configuración actual y devuelve el estado predeterminado a los recursos asociados. Si se ejecuta sin opciones, pooladm imprime la configuración actual de las agrupaciones dinámicas.

poolbind(1M)

Permite la vinculación manual de proyectos, tareas y procesos a una agrupación de recursos. 

poolcfg(1M)

Proporciona operaciones de configuración para las agrupaciones y los conjuntos. Las configuraciones creadas con esta herramienta se instancian en un sistema de destino utilizando pooladm.

Si se ejecuta con el argumento de subcomando info para la opción - c, poolcfg muestra información sobre la configuración estática en /etc/pooladm.conf. Si se añade un argumento de nombre de archivo, este comando muestra información sobre la configuración estática del archivo con nombre. Por ejemplo, poolcfg - c info /tmp/newconfig muestra información sobre la configuración estática que contiene el archivo /tmp/newconfig.

poold(1M)

El daemon del sistema de agrupaciones. El daemon utiliza los destinos del sistema y las estadísticas observables para mantener los objetivos de rendimiento del sistema que especifique el administrador. Si no puede emprender la acción correctiva necesaria cuando no se cumplan los objetivos, poold registra la condición.

poolstat(1M)

Muestra estadísticas para los recursos relacionados con las agrupaciones. Simplifica el análisis de rendimiento y proporciona información de gran utilidad para los administradores del sistema en cuanto a la partición de los recursos y las tareas. Se han incorporado opciones para examinar las agrupaciones especificadas y mostrar las estadísticas específicas de los conjuntos de recursos. 

libpool proporciona una API de biblioteca (consulte la página del comando man libpool(3LIB) Los programas pueden utilizar la biblioteca para manipular las configuraciones de agrupaciones.