La función de administración de recursos es un componente del entorno de contenedores de Solaris. La administración de recursos permite controlar el modo en que las aplicaciones utilizan los recursos del sistema. Se puede:
Asignar recursos informáticos, como tiempo del procesador
Supervisar el modo en que se utilizan las asignaciones y luego ajustarlas según sea preciso
Generar información de contabilidad ampliada para análisis, facturación y planificación de capacidades
En este capítulo se tratan los temas siguientes.
Los entornos informáticos modernos deben proporcionar una respuesta flexible a las diferentes cargas de trabajo que generan las distintas aplicaciones de un sistema. Una carga de trabajo es una adición de todos los procesos de una aplicación o grupo de aplicaciones. Si no se utilizan las funciones de administración de recursos, el sistema operativo Solaris responde a las demandas de carga de trabajo adaptándose a las nuevas solicitudes de aplicaciones de forma dinámica. Esta respuesta predeterminada general significa que toda la actividad del sistema tiene el mismo acceso a los recursos. Las funciones de administración de recursos de Solaris permiten tratar las cargas de trabajo individualmente. Se puede:
Restringir el acceso a un recurso específico
Ofrecer recursos a las cargas de trabajo de modo preferencial
Aislar cargas de trabajo entre sí
La capacidad de minimizar los compromisos de rendimiento de varias cargas de trabajo, junto con las funciones que supervisan el uso de los recursos, se denomina administración de recursos. La administración de recursos se implementa a través de un conjunto de algoritmos. Los algoritmos controlan las series de solicitudes de capacidades que presenta una aplicación durante su ejecución.
Las funciones de administración de recursos permiten modificar el comportamiento predeterminado del sistema operativo con respecto a las diferentes cargas de trabajo. El comportamiento hace referencia principalmente al conjunto de decisiones que toman los algoritmos del sistema operativo cuando una aplicación presenta una o más solicitudes de recursos para el sistema. Puede utilizar las funciones de administración de recursos para:
Denegar recursos o preferir una aplicación para un conjunto de asignaciones mayor que no se permitiría con otra aplicación
Tratar determinadas asignaciones de forma colectiva en lugar de utilizar mecanismos aislados
La implementación de una configuración del sistema que utilice las funciones de administración de recursos puede tener varias finalidades. Se puede:
Impedir a una aplicación el consumo indiscriminado de recursos
Cambiar una prioridad de aplicación basándose en eventos externos
Equilibrar las garantías de recursos para un conjunto de aplicaciones con el fin de maximizar el uso del sistema
Al planificar una configuración administrada por recursos, algunos de los requisitos clave son:
Identificar las cargas de trabajo implicadas en el sistema
Distinguir las cargas de trabajo que no están en conflicto de las que tienen requisitos de rendimiento que afectan a las cargas se trabajo principales
Una vez identificadas las cargas de trabajo conflictivas y las de cooperación, puede crear una configuración de recursos que presente el menor compromiso para los objetivos de servicio del negocio, dentro de las limitaciones de las funciones del sistema.
El sistema Solaris cuenta con una administración de recursos eficaz que ofrece mecanismos de control, de notificación y de supervisión. Muchas de estas funciones se proporcionan a través de mejoras en los mecanismos existentes, como el sistema de archivos proc(4), los conjuntos de procesadores y las clases de planificación. Otras funciones son específicas de la administración de recursos. Estas funciones se describen en los capítulos siguientes.
Un recurso es cualquier aspecto del sistema informático que pueda manipularse con la finalidad de cambiar el comportamiento de la aplicación. En consecuencia, un recurso es una capacidad que solicita una aplicación implícita o explícitamente. Si se deniega o limita la capacidad, la ejecución de una aplicación potente es más lenta.
La clasificación de recursos, a diferencia de la identificación de recursos, puede realizarse para una serie de ejes. Los ejes se pueden solicitar de forma implícita (en contraposición a su solicitud explícita), pueden basarse en el tiempo, como el tiempo de la CPU (en contraposición a las solicitudes independientes del tiempo, como los recursos compartidos de la CPU), etc.
Generalmente, la administración de recursos basada en el planificador se aplica a los recursos que puede solicitar la aplicación de forma implícita. Por ejemplo, para continuar la ejecución, una aplicación solicita de forma implícita tiempo de CPU adicional. Para grabar datos en un socket de red, una aplicación solicita ancho de banda implícitamente. Pueden colocarse limitaciones en el uso total de un recurso solicitado de forma implícita.
Pueden presentarse interfaces adicionales para que los niveles de servicio de CPU o el ancho de banda se negocien de forma explícita. Los recursos que se solicitan de forma explícita, como una solicitud de subproceso adicional, se pueden administrar por limitación.
Los tres tipos de mecanismos de control disponibles en el sistema operativo Solaris son las limitaciones, la planificación y las particiones.
Las limitaciones permiten al administrador o al desarrollador de aplicaciones definir los límites de consumo de recursos específicos para una carga de trabajo. Con unos límites establecidos, el consumo de recursos de modelación pasa a ser un proceso más sencillo. Asimismo, pueden utilizarse los límites para controlar las aplicaciones cuyo comportamiento incorrecto podría afectar al rendimiento o la disponibilidad del sistema a través de solicitudes de recursos no reguladas.
Las limitaciones suponen complicaciones para la aplicación. La relación entre la aplicación y el sistema puede modificarse hasta que la aplicación deje de funcionar. Para atenuar este riesgo, puede reducir gradualmente las limitaciones en las aplicaciones cuyos recursos tienen un comportamiento desconocido. La función de controles de recursos que se describe en el Capítulo 6Controles de recursos (descripción general) ofrece un mecanismo de limitación. Las aplicaciones más nuevas pueden programarse para que tengan en cuenta sus limitaciones de recursos, pero no todos los programadores deciden hacerlo.
La planificación hace referencia a la toma de una serie de decisiones de asignación a intervalos específicos. La decisión que se toma se basa en un algoritmo predecible. Una aplicación que no necesita su asignación actual deja el recurso disponible para el uso de otra aplicación. La administración de recursos basada en la planificación permite el uso completo de una configuración no asignada, a la vez que proporciona asignaciones controladas en una situación de asignaciones excesivas. El algoritmo subyacente define el modo en que se interpreta el término "controlado". En algunas instancias, es posible que el algoritmo de planificación, garantice que todas las aplicaciones tengan algún tipo de acceso al recurso. El planificador de reparto justo (FSS) descrito en el Capítulo 8Programador de reparto justo (descripción general) administra el acceso de la aplicación a los recursos de la CPU de un modo controlado.
La partición se utiliza para vincular una carga de trabajo con un subconjunto de los recursos disponibles del sistema. Este vínculo garantiza que siempre haya disponible una cantidad determinada de recursos para la carga de trabajo. Las funciones de agrupaciones de recursos que se describen en el Capítulo 12Agrupaciones de recursos (descripción general) permiten limitar las cargas de trabajo de subconjuntos específicos del equipo.
En las configuraciones que utilizan la partición se puede evitar la asignación excesiva en el sistema. Sin embargo, al evitar esta asignación excesiva, la capacidad de obtener usos elevados puede verse reducida. Un grupo reservado de recursos, como procesadores, no está disponible para ser utilizado por otra carga de trabajo cuando la carga vinculada a ellos está inactiva.
Partes de la configuración de administración de recursos puede colocarse en un servicio de nombres de la red. Esta función permite al administrador aplicar limitaciones de administración de recursos a un grupo de equipos, en lugar de basarse en los equipos individuales. Los trabajos relacionados pueden compartir un identificador común, y el uso adicional de dichos trabajos se puede tabular desde los datos de cuentas.
La configuración de administración de recursos y los identificadores orientados a la carga de trabajo se describen con mayor detalle en el Capítulo 2Proyectos y tareas (información general). La función de contabilidad ampliada que vincula estos identificadores con el uso del recurso de la aplicación se describe en el Capítulo 4Contabilidad ampliada (descripción general).
Las funciones de administración de recursos pueden utilizarse con Zonas de Solaris para detallar más el entorno de aplicación. Las interacciones entre estas funciones y las zonas se describen en las secciones aplicables de esta guía.
Utilice la administración de recursos para asegurarse de que las aplicaciones cumplan los tiempos de respuesta requeridos.
La administración de recursos también puede aumentar el uso de los recursos. Al categorizar y priorizar el uso, puede utilizar de forma eficaz la capacidad de reserva durante los períodos no pico, lo que a menudo acaba con la necesidad de potencia de procesamiento adicional. También puede asegurarse de que los recursos no se malgasten debido a la variabilidad de la carga.
La administración de recursos es ideal para los entornos que consolidan una serie de aplicaciones en un único servidor.
El coste y la complejidad de administrar varios equipos fomenta la consolidación de varias aplicaciones en servidores más grandes y más escalables. En lugar de ejecutar cada carga de trabajo en un sistema distinto, con acceso completo a los recursos de dicho sistema, puede utilizar el software de administración de recursos para segregar las cargas de trabajo en el sistema. La administración de recursos permite reducir el coste total de propiedad al ejecutar y controlar varias aplicaciones en un único sistema Solaris.
Si proporciona servicios de aplicaciones e Internet, puede utilizar la administración de recursos para:
Alojar varios servidores Web en un único equipo. Puede controlar el consumo de recursos para cada sitio web y proteger cada sitio de los posibles excesos de otros sitios.
Evitar que una secuencia de interfaz Common Gateway Interface (CGI) agote los recursos de la CPU.
Detener una aplicación cuyo comportamiento sea anómalo para que no afecte a la memoria virtual disponible.
Asegurarse de que las aplicaciones de un cliente no se vean afectadas por las aplicaciones de otro cliente que se ejecutan en el mismo sitio.
Proporcionar clases o niveles de servicios diferenciados en el mismo equipo.
Obtener información de cuentas para fines de facturación.
Utilice las funciones de administración de recursos de cualquier sistema que tenga una base de usuarios diversa y de gran tamaño, como una institución educativa. Si tiene una combinación de cargas de trabajo, el software se puede configurar para otorgar prioridad a determinados proyectos.
Por ejemplo, en grandes agencias de corredores, los agentes necesitan acceso de forma intermitente y rápida para ejecutar una consulta o realizar un cálculo. En cambio, otros usuarios del sistema tienen cargas de trabajo más coherentes. Si asigna una cantidad proporcionalmente mayor de potencia de procesamiento a los proyectos de los agentes, éstos obtendrán la respuesta que necesitan.
La administración de recursos también resulta ideal para los sistemas e clientes sencillos. Estas plataformas proporcionan consolas sin estado con búferes de trama y dispositivos de entrada, como tarjetas inteligentes. Los cálculos reales se llevan a cabo en un servidor compartido, lo que tiene como resultado un tipo de entorno en el que se comparte el tiempo. Utilice las funciones de administración de recursos para aislar los a usuarios del servidor. Un usuario que genere una carga excesiva no monopolizará los recursos de hardware ni afectará a los demás usuarios del sistema.
El siguiente mapa de tareas proporciona información general de alto nivel sobre los pasos para configurar la administración de recursos del sistema.
Tarea |
Descripción |
Para obtener instrucciones |
---|---|---|
Identificar las cargas de trabajo del sistema y categorizar cada una de ellas por proyecto. |
Crea entradas de proyecto en el archivo /etc/project, el mapa NIS o el servicio de directorios LDAP. | |
Priorizar las cargas de trabajo en el sistema. |
Determina qué aplicaciones son críticas. Estas cargas de trabajo pueden requerir acceso preferencial a los recursos. |
Consulte los objetivos del servicio corporativo. |
Supervisar la actividad del sistema en tiempo real. |
Utiliza las herramientas del sistema para ver el consumo de recursos de las cargas de trabajo que se ejecutan en el sistema. Puede evaluar si debe limitar el acceso a un recurso específico o aislar cargas de trabajo concretas de otras cargas de trabajo. |
Supervisión del sistema y páginas del comando man cpustat(1M), iostat(1M), mpstat(1M), prstat(1M), sar(1) y vmstat(1M) |
Realizar modificaciones temporales en las cargas de trabajo que se ejecutan en el sistema. |
Para determinar los valores que se pueden modificar, consulte los controles de recursos que están disponibles en el sistema Solaris. Puede actualizar los valores desde la línea de comandos mientras se ejecuta la tarea o el proceso. |
Controles de recursos disponibles, Acciones locales y globales en valores de controles de recursos, Actualización temporal de los valores de controles de recursos en un sistema en ejecución y páginas del comando man rctladm(1M) y prctl(1). |
Definir controles de recursos y atributos de proyecto para cada entrada de proyecto en la base de datos project o la base de datos del proyecto de servicio de nombres. |
Cada entrada de proyecto del archivo /etc/project o la base de datos del proyecto del servicio de nombres puede contener uno o más atributos o controles de recursos. Los controles de recursos limitan las tareas y los procesos vinculados al proyecto. Para cada valor umbral que se coloque en un control de recursos, puede asociar una o más acciones que se deben realizar cuando se alcance dicho valor. Puede configurar los controles de recursos utilizando la interfaz de la línea de comandos. Algunos parámetros de la configuración también se pueden configurar utilizando Solaris Management Console. |
Base de datos project, Formato de archivo /etc/project local, Controles de recursos disponibles, Acciones locales y globales en valores de controles de recursos y Capítulo 8Programador de reparto justo (descripción general) |
Coloque un vínculo superior sobre el consumo de recursos de la memoria física por parte de los grupos de procesos vinculados a un proyecto. |
El daemon de aplicación límite (cap) de recursos aplicará el límite de recursos de memoria física definido para el atributo rcap.max-rss del proyecto en el archivo /etc/project. |
Base de datos project y Capítulo 10Control de memoria física utilizando el daemon de límite de recursos (descripción general) |
Crear configuraciones de agrupaciones de recursos. |
Las agrupaciones de recursos permiten particionar los recursos del sistema, como los procesadores, y mantener las particiones después de reiniciar el sistema. Puede añadir un atributo project.pool a cada entrada del archivo /etc/project. |
Base de datos project y Capítulo 12Agrupaciones de recursos (descripción general) |
Convertir el planificador de reparto justo (FSS) en el planificador predeterminado del sistema. |
Asegura que todos los procesos del usuario de un sistema CPU único o un conjunto de procesadores pertenezcan a la misma clase de planificación. |
Configuración de FSS y página del comando man dispadmin(1M) |
Activar la función de contabilidad ampliada para supervisar y registrar el consumo de recursos por tareas o procesos. |
Utiliza los datos de contabilidad ampliada para evaluar los controles de recursos actuales y para planificar los requisitos de capacidades para futuras cargas de trabajo. Puede realizarse un seguimiento del uso adicional en todo el sistema. Para obtener estadísticas completas sobre el uso para las cargas de trabajo relacionadas que implican más de un sistema, varios equipos pueden compartir el nombre del proyecto. |
Cómo activar la contabilidad ampliada para procesos, tareas y flujos y página del comando man acctadm(1M) |
(Opcional) Si necesita realizar ajustes adicionales en la configuración, puede seguir modificando los valores desde la línea de comandos. Puede modificar los valores mientras se ejecuta la tarea o el proceso. |
Las modificaciones de las tareas existentes se pueden aplicar temporalmente sin necesidad de reiniciar el proyecto. Ajuste los valores hasta obtener un rendimiento satisfactorio. A continuación, actualice los valores actuales del archivo /etc/project o de la base de datos del proyecto del servicio de nombres. |
Actualización temporal de los valores de controles de recursos en un sistema en ejecución y páginas del comando man rctladm(1M) y prctl(1) |
(Opcional) Capturar datos de contabilidad ampliada. |
Crea registros de contabilidad ampliada para las tareas y los procesos activos. Los archivos que se generan pueden utilizarse para fines de planificación, contracargos y facturación. También hay una interfaz de Lenguaje Práctico de Extracción e Informes (Practical Extraction and Report Language o Perl) para libexacct que permite desarrollar secuencias de extracción e informes personalizados. |
Página del comando man wracct(1M) y Interfaz Perl para libexacct |