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

Capítulo 4 Contabilidad ampliada (descripción general)

Al utilizar las funciones de proyectos y tareas que se describen en el Capítulo 2Proyectos y tareas (información general) para etiquetar y separar cargas de trabajo, puede supervisar el consumo de recursos por cada carga de trabajo. Puede utilizar el subsistema de contabilidad ampliada para capturar un conjunto detallado de estadísticas de consumo de recursos en los proyectos y tareas.

En este capítulo se cubren los temas siguientes.

Para empezar a utilizar la contabilidad ampliada, pase a Cómo activar la contabilidad ampliada para procesos, tareas y flujos.

Novedades en la contabilidad ampliada de Solaris 10

Ahora se pueden generar los datos de mstate para las cuentas del proceso. Consulte Cómo ver los recursos de cuentas disponibles.

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.

Introducción a la contabilidad ampliada

El subsistema de contabilidad ampliada etiqueta los registros de uso con el proyecto para el que se ha realizado el trabajo. También puede utilizar la contabilidad ampliada, junto con el módulo de cuentas de flujo de Internet Protocol Quality of Service (IP QoS) descrito en el Capítulo 36, Uso de control de flujo y recopilación de estadísticas (Tareas) de Guía de administración del sistema: servicios IP, con el fin de capturar la información de flujo de red en un sistema.

Antes de aplicar los mecanismos de administración de recursos, debe caracterizar las demandas de consumo de recursos de las distintas cargas de trabajo en un sistema. La función de contabilidad ampliada del sistema operativo Solaris proporciona un método flexible para registrar el consumo de recursos de red y del sistema por tarea o proceso, o por los selectores que proporciona el módulo flowacct de IPQoS. Para obtener más información, consulte ipqos(7IPP).

A diferencia de otras herramientas de supervisión en línea, que permiten medir el uso del sistema en tiempo real, la contabilidad ampliada permite examinar el uso histórico. Puede realizar evaluaciones de los requisitos de capacidades para las futuras cargas de trabajo.

Gracias a los datos de contabilidad ampliada, puede desarrollar o adquirir software para el contracargo de recursos, la supervisión de la carga de trabajo o la planificación de las capacidades.

Funcionamiento de la contabilidad ampliada

La función de contabilidad ampliada del sistema operativo Solaris utiliza un formato de archivo ampliable con versión que contiene los datos de contabilidad. Se puede acceder a los archivos que utilizan este formato de datos o éstos se pueden crear utilizando la API que se proporciona con la biblioteca incluida, libexacct (consulte libexacct(3LIB)). Estos archivos pueden analizarse en cualquier plataforma con la función de contabilidad ampliada activada, y sus datos se pueden utilizar para el contracargo y la planificación de capacidades.

Si la función de contabilidad ampliada está activa, se recopilan estadísticas que pueden examinarse con la API libexacct. libexacct permite examinar los archivos exacct hacia delante o hacia atrás. La API admite archivos de terceros que genera libexacct, así como los archivos que crea el núcleo. 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. Consulte Interfaz Perl para libexacct.

Por ejemplo, con la contabilidad ampliada habilitada, la tarea supervisa el uso de los recursos adicionales de sus procesos miembro. Al finalizar la tarea se guarda un registro de cuentas de las tareas. También pueden guardarse registros provisionales sobre los procesos y tareas en ejecución. Para obtener más información sobre las tareas, consulte el Capítulo 2Proyectos y tareas (información general).

Figura 4–1 Supervisión de tareas con la contabilidad ampliada activada

El diagrama de flujo muestra cómo se captura el uso de recursos adicionales de los procesos de una tarea en el registro que se guarda al finalizar la tarea.

Formato ampliable

El formato de contabilidad ampliada es sustancialmente más ampliable que el formato de software de cuentas del sistema heredado SunOS (consulte What is System Accounting? de System Administration Guide: Advanced Administration). La contabilidad ampliada permite añadir y eliminar métrica de cuentas en las distintas versiones del sistema, e incluso durante el funcionamiento del sistema.


Nota –

La contabilidad ampliada y el software de contabilidad del sistema heredado pueden estar activos en el sistema de forma simultánea.


Registros y formato exacct

Las rutinas que permiten crear registros exacct tienen dos finalidades.

El formato permite capturar diferentes formas de registros de cuentas sin necesidad de que cada cambio sea un cambio de versión explícito. Las aplicaciones potentes que consumen datos de cuentas deben omitir los registros que no comprenden.

La biblioteca libexacct convierte y produce archivos en el formato exacct. Esta biblioteca es la única interfaz compatible con los archivos de formato exacct.


Nota –

Las llamadas de sistema getacct, putacct y wracct no se aplican a los flujos. El núcleo crea registros de flujo y los guarda en el archivo cuando se configuran las cuentas de flujo IPQoS.


Uso de contabilidad ampliada en un sistema Solaris con Zonas de Solaris instalado

El subsistema de contabilidad ampliada recopila y registra la información para todo el sistema (incluidas las zonas no globales) cuando se ejecuta en la zona global. El administrador global también puede determinar el consumo de recursos por zonas. Consulte Contabilidad ampliada en un sistema Solaris con zonas instaladas para más información.

Configuración de contabilidad ampliada

El archivo /etc/acctadm.conf contiene la configuración de contabilidad ampliada actual. El archivo se edita mediante la interfaz acctadm, no lo edita el usuario.

El directorio /var/adm/exacct es la ubicación estándar para colocar datos de contabilidad ampliada. Puede utilizar el comando acctadm para especificar una ubicación distinta para los archivos de datos y cuentas de procesos y tareas. Consulte acctadm(1M) para obtener más información.

Comandos utilizados con contabilidad ampliada

Referencia de comando 

Descripción 

acctadm(1M)

Modifica diferentes atributos de la función de contabilidad ampliada, detiene e inicia la contabilidad ampliada y se utiliza para seleccionar atributos de cuentas para supervisar los procesos, tareas y flujos. 

wracct(1M)

Guarda registros de contabilidad ampliada para las tareas y los procesos activos. 

lastcomm(1)

Muestra los comandos invocados previamente. lastcomm puede consumir datos de procesos y cuentas estándar o datos de procesos de contabilidad ampliada.

Para obtener información sobre los comandos asociados con los proyectos y tareas, consulte Ejemplos y opciones de comandos. Para obtener información sobre las cuentas de flujos IPQoS, consulte ipqosconf(1M).

Interfaz Perl para libexacct

La interfaz Perl permite crear secuencias Perl que lean los archivos de cuentas producidos por la estructura exacct. También puede crear secuencias Perl que escriban archivos exacct.

La interfaz es funcionalmente equivalente a la API C subyacente. Cuando sea posible, los datos obtenidos de la API C subyacente se presentan como tipos de datos Perl. Esta función facilita el acceso a los datos y acaba con la necesidad de las operaciones de compresión y descompresión del búfer. Asimismo, todas las funciones de administración de la memoria las lleva a cabo la biblioteca Perl.

Las diferentes funciones relacionadas con proyectos, tareas y exacct se separan en grupos. Cada grupo de funciones se encuentra en un módulo Perl distinto. Cada módulo empieza por el prefijo de paquete Perl Sun::Solaris:: estándar. Todas las clases proporcionadas por la biblioteca Perl exacct se encuentran en el módulo Sun::Solaris::Exacct.

La biblioteca libexacct(3LIB) subyacente proporciona operaciones en los archivos de formato exacct, las etiquetas de catálogo y los objetos exacct. Los objetos exacct se subdividen en dos tipos:

La tabla siguiente resume cada uno de los módulos.

Módulo (no debe contener espacios) 

Descripción 

Para obtener más información 

Sun::Solaris::Project

Este módulo proporciona funciones para acceder a las funciones de manipulación del proyecto getprojid(2), endprojent(3PROJECT) , fgetprojent(3PROJECT), getdefaultproj(3PROJECT), getprojbyid(3PROJECT), getprojbyname(3PROJECT), getprojent(3PROJECT), getprojidbyname(3PROJECT), inproj(3PROJECT), project_walk(3PROJECT), setproject(3PROJECT) y setprojent(3PROJECT).

Project(3PERL)

Sun::Solaris::Task

Este módulo proporciona funciones para acceder a las funciones de manipulación de tareas gettaskid(2) y settaskid(2).

Task(3PERL)

Sun::Solaris::Exacct

Este módulo es el módulo exacct de nivel superior. Este módulo proporciona funciones para acceder a las llamadas del sistema relacionadas con exacct getacct(2), putacct(2) y wracct(2). Este módulo también proporciona funciones para acceder a la función de biblioteca libexacct(3LIB) ea_error(3EXACCT). En este módulo también se proporcionan las constantes para todas las macros exacct EO_*, EW_*, EXR_*, P_* y TASK_*.

Exacct(3PERL)

Sun::Solaris::Exacct:: Catalog

Este módulo proporciona los métodos orientados a objetos para acceder a los campos de bits en una etiqueta de catálogo exacct. Este módulo también proporciona acceso a las constantes de las macros EXC_*, EXD_* y EXD_*.

Exacct::Catalog(3PERL)

Sun::Solaris::Exacct:: File

Este módulo proporciona métodos orientados a objetos para acceder a las funciones de archivos de cuentas libexacct ea_open(3EXACCT), ea_close(3EXACCT), ea_get_creator(3EXACCT), ea_get_hostname(3EXACCT), ea_next_object(3EXACCT), ea_previous_object(3EXACCT) y ea_write_object(3EXACCT).

Exacct::File(3PERL)

Sun::Solaris::Exacct:: Object

Este módulo proporciona métodos orientados a objetos para acceder a un objeto de archivo de cuentas exacct individual. Un objeto exacct se representa como referencia opaca designada en la subclase Sun::Solaris::Exacct::Object apropiada. Este módulo se subdivida aún más en los tipos de objetos Elemento y Grupo. En este nivel, hay dos modos para acceder a las funciones ea_match_object_catalog(3EXACCT) y ea_attach_to_object(3EXACCT).

Exacct::Object(3PERL)

Sun::Solaris::Exacct:: Object::Item

Este módulo proporciona métodos orientados a objetos para acceder a un elemento de archivo de cuentas exacct individual. Los objetos de este tipo heredan de Sun::Solaris::Exacct::Object.

Exacct::Object::Item(3PERL)

Sun::Solaris::Exacct:: Object::Group

Este módulo proporciona métodos orientados a objetos para acceder a un grupo de archivos de cuentas exacct individual. Los objetos de este tipo heredan de Sun::Solaris::Exacct::Object. Estos objetos proporcionan acceso a la función ea_attach_to_group(3EXACCT). Los elementos que contiene el grupo se presentan como matriz Perl.

Exacct::Object::Group(3PERL)

Sun::Solaris::Kstat

Este módulo proporciona una interfaz hash vinculada a Perl para la función kstat. Puede encontrar un ejemplo de uso de este módulo en /bin/kstat, que se escribe en Perl.

Kstat(3PERL)

Para ver ejemplos sobre cómo utilizar los módulos descritos en la tabla anterior, consulte Uso de la interfaz de Perl para libexacct.