Usando as facilidades de projeto e tarefas descritos no Capítulo 2Projetos e tarefas (visão geral) para rotular e separar cargas de trabalho, você pode monitorar o consumo de recursos por carga de trabalho. Você pode usar o subsistema contabilidade estendida para capturar um conjunto detalhado de estatísticas de consumo de recursos em processos e tarefas.
Os tópicos a seguir são tratados neste capítulo.
Para começar a usar a contabilidade estendida, salte para Como ativar a contabilidade estendida para processos, tarefas e fluxos.
Agora, dados mstate para contabilidade de processo podem ser gerados. Consulte Como visualizar recursos de contabilidade disponíveis.
Para obter uma lista completa dos novos recursos do Solaris 10 e uma descrição das versões do Solaris, consulte Novidades no Oracle Solaris 10 9/10.
O subsistema de contabilidade estendida rotula registros de uso com o projeto para o qual o trabalho foi feito. Você também pode usar a contabilidade estendida junto com o módulo de contabilidade de fluxo Internet Protocol Quality of Service (IPQoS) descrito no Capítulo 36, Using Flow Accounting and Statistics Gathering (Tasks), no System Administration Guide: IP Services, para capturar informações de fluxo de rede em um sistema.
Antes de poder aplicar mecanismos de gerenciamento de recursos, você primeiro deve caracterizar as exigências de consumo de recursos que várias cargas de trabalho colocam em um sistema. A facilidade de contabilidade estendida no Solaris Operating System oferece uma maneira flexível de registrar o consumo de recursos de sistema e rede com base em uma tarefa ou um processo, ou com base em seletores fornecidos pelo módulo IPQoS flowacct. Para obter mais informações consulte ipqos(7IPP).
Ao contrário das ferramentas de monitoração on-line, que permitem que você meça o uso do sistema em tempo real, a contabilidade estendida permite que você examine o uso histórico. A seguir você pode fazer avaliações de requisitos de capacidade para futuras cargas de trabalho.
Com dados da contabilidade estendida disponíveis, você pode desenvolver ou adquirir software para chargeback de recursos, monitoração de carga de trabalho ou planejamento de capacidade.
A facilidade de contabilidade estendida no Solaris Operating System usa um formato de arquivo extensível, com versão, para conter dados de contabilidade. Arquivos que usam este formato de dados podem ser acessados ou criados com o uso da API fornecida na biblioteca incluída, libexacct (consulte libexacct(3LIB)). Esses arquivos podem ser então analisados em qualquer plataforma com contabilidade estendida ativada e os dados podem ser usados para planejamento de capacidade e chargeback.
Se a contabilidade estendida estiver ativa, serão obtidas estatísticas que podem ser examinadas pela API de libexacct. libexacct permite o exame dos arquivos exacct para frente ou para trás. A API oferece suporte a arquivos de terceiros que são gerados por libexacct assim como a arquivos que são criados pelo kernel. Há uma interface prática de linguagem de extração e relatório (Perl) para libexacct que permite que você desenvolva relatórios personalizados e scripts de extração. Consulte Interface Perl para libexacct
Por exemplo, com a contabilidade estendida ativada, a tarefa acompanha o uso dos recursos agregados dos processos de seu membro. Um registro de contabilidade de tarefa é escrito na conclusão da tarefa. Registros provisórios sobre processos e tarefas em execução também podem ser escritos. Para obter mais informações sobre tarefas, consulte o Capítulo 2Projetos e tarefas (visão geral).
O formato da contabilidade estendida é substancialmente mais extensível do que o formato do software de contabilidade do sistema de legado SunOS (consulte What is System Accounting? no System Administration Guide: Advanced Administration). A contabilidade estendida permite que a métrica de contabilidade seja adicionada ao sistema e dele removida entre versões, e mesmo durante a operação do sistema.
A contabilidade estendida e o software de contabilidade do sistema de legado podem estar ativas ao mesmo tempo em seu sistema.
Rotinas que permitem que registros de exacct sejam criados servem a dois propósitos.
Para ativar arquivos exacct de terceiros a serem criados.
Para ativar a criação de registros de identificação a serem incorporados no arquivo de contabilidade do kernel com o uso da chamada do sistema putacct (consulte getacct(2)).
A chamada do sistema putacct está também disponível na interface Perl.
O formato permite que diferentes formas de registros de contabilidade sejam capturadas sem requerer que cada alteração seja uma alteração de versão explícita. Aplicativos bem escritos que consomem dados de contabilidade devem ignorar registros que eles não entendem.
A biblioteca libexacct converte e produz arquivos no formato exacct. Esta biblioteca é a única interface com suporte para arquivos no formato exacct.
As chamadas do sistema getacct, putacct e wracct não se aplicam a fluxos. O kernel cria registros de fluxos e os grava no arquivo quando a contabilidade de fluxo IPQoS é configurada.
O subsistema da contabilidade estendida coleta e relata informações para todo o sistema (inclusive regiões não globais) quando executado na região global. O administrador global pode também determinar o consumo de recursos com base em cada região. Para obter mais informações, consulte Contabilidade estendida em um sistema do Solaris com regiões instaladas.
O arquivo /etc/acctadm.conf contém a configuração atual da contabilidade estendida. O arquivo é editado através da interface acctadm , não pelo usuário.
O diretório /var/adm/exacct é o local padrão para se colocar dados da contabilidade estendida. Você pode usar o comando acctadm para especificar um local diferente para os arquivos de dados de contabilidade de processos e tarefas. Para obter mais informações, consulte acctadm(1M).
Referência de comandos |
Descrição |
---|---|
Modifica vários atributos da facilidade de contabilidade estendida, pára e inicia a contabilidade estendida e é usado para selecionar atributos de contabilidade para acompanhar processos, tarefas e fluxos. |
|
Grava registros da contabilidade estendida para processos e tarefas ativos. |
|
Exibe comandos chamados anteriormente. lastcomm pode consumir dados de processo de contabilidade padrão ou dados de processo da contabilidade estendida. |
Para obter informações sobre comandos associados a tarefas e projetos, consulte Exemplos de comandos e opções de comando. Para obter informações sobre contabilidade de fluxo de IPQoS, consulte ipqosconf(1M).
A interface Perl permite que você crie scripts Perl que podem ler os arquivos de contabilidade produzidos pela estrutura exacct. Você também pode criar scripts Perl que gravam arquivos exacct.
A interface é funcionalmente equivalente à API C subjacente. Quando possível, os dados obtidos da API C subjacente são apresentados como tipos de dados Perl. Este recurso facilita o acesso aos dados e elimina a necessidade de pacote de buffer ou de operações de descompactação. Além disso, todo o gerenciamento da memória é executado pela biblioteca Perl.
Os vários projetos, tarefas e funções relacionados a exacct são separados em grupos. Cada grupo de funções está localizado em um módulo Perl separado. Cada módulo começa com prefixo de pacote Perl padrão da Sun Sun::Solaris::. Todas as classes fornecidas pela biblioteca Perl exacct se encontram no módulo Sun::Solaris::Exacct.
A biblioteca subjacente libexacct(3LIB) fornece operações sobre arquivos no formato exacct, etiquetas de catálogo e objetos exacct. Os objetos exacct são subdivididos em dois tipos:
Itens, que são valores de dados únicos (escalares)
Grupos, que são listas de itens
O quadro abaixo resume cada um dos módulos.
Módulo (não deve conter espaços) |
Descrição |
Para obter mais informações |
---|---|---|
Sun::Solaris::Project |
Este módulo fornece funções para acessar as funções de manipulação de projeto getprojid(2), endprojent(3PROJECT) , fgetprojent(3PROJECT), getdefaultproj(3PROJECT), getprojbyid(3PROJECT), getprojbyname(3PROJECT), getprojent(3PROJECT), getprojidbyname(3PROJECT), inproj(3PROJECT), project_walk(3PROJECT), setproject(3PROJECT) e setprojent(3PROJECT). |
Project(3PERL) |
Sun::Solaris::Task |
Este módulo fornece funções para acessar as funções de manipulação de tarefa gettaskid(2) e settaskid(2). |
Task(3PERL) |
Sun::Solaris::Exacct |
Este módulo é o módulo exacct de nível superior. Este módulo fornece funções para acessar as chamadas do sistema relacionadas a exacct getacct(2), putacct(2) e wracct(2). Este módulo também fornece funções para acessar libexacct(3LIB) função de bibliotecaea_error(3EXACCT). Constantes para todas as macros EO_*, EW_*, EXR_*, P_* e TASK_* de exacct também são fornecidas neste módulo. |
Exacct(3PERL) |
Sun::Solaris::Exacct:: Catalog |
Este módulo fornece métodos orientados a objeto para acessar os campos de bits em uma etiqueta de catálogo de exacct. Este módulo também fornece acesso às constantes para as macros EXC_*, EXD_* e EXD_*. |
Exacct::Catalog(3PERL) |
Sun::Solaris::Exacct:: File |
Este módulo fornece métodos orientados a objeto para acessar as funções do arquivo de contabilidade libexacct ea_open(3EXACCT), ea_close(3EXACCT), ea_get_creator(3EXACCT), ea_get_hostname(3EXACCT), ea_next_object(3EXACCT), ea_previous_object(3EXACCT) e ea_write_object(3EXACCT). |
Exacct::File(3PERL) |
Sun::Solaris::Exacct:: Object |
Este módulo fornece métodos orientados a objeto para acessar um objeto individual do arquivo de contabilidade exacct. Um objeto exacct é representado como uma referência opaca acolhida na subclasse Sun::Solaris::Exacct::Object apropriada. Este módulo tem nova subdivisão nos tipos de objeto Item e Grupo. Neste nível, há métodos para acessar as funções ea_match_object_catalog(3EXACCT) e ea_attach_to_object(3EXACCT). |
Exacct::Object(3PERL) |
Sun::Solaris::Exacct:: Object::Item |
Este módulo fornece métodos orientados a objeto para acessar um item individual do arquivo de contabilidade exacct. Objetos deste tipo herdam de Sun::Solaris::Exacct::Object. |
Exacct::Object::Item(3PERL) |
Sun::Solaris::Exacct:: Object::Group |
Este módulo fornece métodos orientados a objeto para acessar um grupo individual do arquivo de contabilidade exacct. Objetos deste tipo herdam de Sun::Solaris::Exacct::Object. Estes objetos fornecem acesso à função ea_attach_to_group(3EXACCT). Os itens contidos dentro do grupo são apresentados como uma matriz de Perl. |
Exacct::Object::Group(3PERL) |
Sun::Solaris::Kstat |
Este módulo fornece uma interface hash ligada de Perl para a facilidade kstat. Um exemplo de uso para este módulo se encontra em /bin/kstat, que é gravado em Perl. |
Kstat(3PERL) |
Para exemplos que mostram como usar os módulos descritos na tabela anterior, consulte Uso da interface Perl para libexacct.