Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Habilitando SAR para coletar dados no Solaris

Colaboração: Angelo Roberto Bonfieti Junior

Data de Publicação: 25 de Julho de 2006

SAR é a abreviação de *System Activity Reporter*, cuja tradução seria algo como Relator de Atividades do Sistema, ou seja, o "dedo-duro" da utilização de recursos da máquina. É uma ferramenta que monitora os principais dispositivos de performance de um sistema, tais como utlização de CPU, memória e paginação.

Em ambientes Solaris, ele é instalado como parte de um pacote opcional (SUNWaccu).

O SAR provê informações preciosas sobre a performance de um Sistema, entretanto também pode gerar uma pequena carga na performance do sistema sendo monitorado, dependendo da frequência com a qual estiver configurado para ser executado.

Os dados provenientes do SAR ajudam a rastrear problemas no sistema e identificar gargalos, e são utilizados pela própria Sun em muitas ocasiões quando o assunto é análise de performance. Existem alguns scripts que transformam o SAR am gráfico, que será abordado em outra oportunidade. Por enquanto, falemos do SAR somente.

O SAR

O SAR pode ser executado para mostrar recentes (mas já passadas) ou atuais estatísticas de performance. Se você quer saber como seu sistema neste momento, o SAR coleta informações do Kernel para reportar os numerosos aspectos de performance de um sistema.

Segue abaixo algumas flags que podem ser usadas e o que elas coletam. Maiores informações sobre essas flags estão no man do sar.

  • -a --> uso de rotinas de acesso a arquivos
  • -A --> todos os dados - equivalente a -abcdgkmpqruvwy
  • -b --> atividade de buffer (leitura, escrita, cache, etc)
  • -c --> chamadas de sistema (system calls read, write, fork, exec, etc)
  • -d --> atividade de cada block device (por exemplo disco ou fita)
  • -g --> atividade de paginação (paging out, free, scan, etc)
  • -k --> atividade de KMA (Kernel Memory Allocation)
  • -m --> atividade de mensagens e semáforos
  • -o --> salva a saída em um arquivo binário
  • -p --> atividade de paginação (paging in, requests, faults, etc)
  • -q --> média de tamanho de fila enquanto ocupado e percentual de tempo ocupado
  • -u --> utilização de CPU (flag padrão)
  • -r --> páginas de memória e blocos de disco não utilizados
  • -w --> atividades de swap e switch
  • -y --> mostra atividade de TTY

Para visualizar como está a perfomance agora, basta digitar o comando sar com o(s) parâmetro(s) desejado(s), mencionar o intervalo (em segundos) no qual você deseja obter os dados e a quantidade desejada.

Assim, digitando

  # sar 5 5

o output seria similar ao abaixo:

  root@chaos >> sar 5 5
  
  SunOS chaos 5.9 Generic_118558-13 sun4u    01/07/2006
  
  11:30:41    %usr    %sys    %wio   %idle
  11:30:46      23      46       0      31
  11:30:51      20      47       0      32
  11:30:56      19      48       0      33
  11:31:01      16      51       0      33
  11:31:06      17      48       0      35
  
  Average       19      48       0      33

Geralmente a primeira linha é ignorada, por conter uma estatística (as vezes um pouco bizarra) desde o último reboot.

Rodando-o na forma retroativa, o SAR pode mostrar como estava a performance do sistema ontem ou na semana passada. Nesse modo, o SAR coleta dados durante as horas em que o servidor está em pleno processamento e também nos períodos mais calmos. Normalmente procura-se obter dados das horas em que o servidor está mais ocupado e guardá-las para posterior análise.

Se você digitar somente SAR sem nenhum parâmetro, a ferramenta vai procurar pelo arquivo SAR do dia (geralmente em /var/adm/sa) indicando atividade de CPU até a mais recente hora completa.

  chaos$ sar
  SunOS chaos 5.9 Generic_118558-13 sun4u    01/07/2006
  00:00:00    %usr    %sys    %wio   %idle
  01:00:00       5       3       3      89
  02:00:00       5       3      49      43
  03:00:00       5       3       4      89
  04:00:00       6       2      15      77
  05:00:00       5       3      46      46
  06:00:00       6       6      42      45

Quando estiver configurado para coletar dados automaticamente de um sistema, o SAR o faz através de diversos binários e scripts. O comando SADC põe um marcador no arquivo de dados indicando o começo da captação de dados. Geralmente é executado quando o sistema sobe ou quando a captação de dados é iniciada através do script /etc/rc2.d/S21perf

O script /usr/lib/sa/sa1 roda a cada 20 minutos durante o que são normalmente horários de pico (Segunda a Sexta, das 8 as 18hs) e a cada hora fora desse horário.

O script /usr/lib/sa/sa2 prepara relatórios em formato ASCII mostrando médias e números em intervalos de horas.

Em termos de performance o SAR praticamente não agride o sistema. Isso a menos que você queira coletar dados num intervalo de tempo razoávelmente pequeno (digamos 5 ou 10 segundos). Isso certamente daria uma visão mais pontual da utilização de recursos ao longo do dia, mas pode ter alguns dedobramentos indesejáveis como contribuir com um pouco de lentidão no sistema e geração de arquivos muito grandes (na casa de GB).

O considerado padrão, seria:

  0 * * * 0-6 /usr/lib/sa/sa1
  20,40 8-17 * * 1-5 /usr/lib/sa/sa1
  5 18 * * 1-5 /usr/lib/sa/sa2 -s 8:00 -e 18:01 -i 1200 -A

HABILITANDO O SAR

Para tornar a coleta de dados através do SAR ativa, é necessário seguir alguns procedimentos:

  1. Instalar o pacote SUNWaccu (se ainda não fizer parte do seu SO)

  2. Remover a marca de comentário das seguintes linhas do /etc/rc2.d/S21perf:

      # if [ -z "$_INIT_RUN_LEVEL" ]; then
      #         set -- `/usr/bin/who -r`
      #         _INIT_RUN_LEVEL="$7"
      #         _INIT_RUN_NPREV="$8"
      #         _INIT_PREV_LEVEL="$9"
      # fi
      #
      # if [ $_INIT_RUN_LEVEL -ge 2 -a $_INIT_RUN_LEVEL -le 4 -a \
      #     $_INIT_RUN_NPREV -eq 0 -a \( $_INIT_PREV_LEVEL = 1 -o \
      #     $_INIT_PREV_LEVEL = S \) ]; then
      #
      #         /usr/bin/su sys -c "/usr/lib/sa/sadc /var/adm/sa/sa`date +%d`"
      # fi
    

  3. Remover a marca de comentário das tarefas de cron do usuário sys com o comando "sar -e sys"
      # 0 * * * 0-6 /usr/lib/sa/sa1
      # 20,40 8-17 * * 1-5 /usr/lib/sa/sa1
      # 5 18 * * 1-5 /usr/lib/sa/sa2 -s 8:00 -e 18:01 -i 1200 -A
    
  4. Executar o comando "/etc/rc2.d/S21perf start"

    Feito isso você pode checar se o /var/adm/sa está sendo populado com dados. Os arquivos gerados devem ser algo como:
      root@chaos >> ls -l /var/adm/sa
      ls -l /var/adm/sa
      total 1205120
      -rw-r--r--   1 sys      sys      53033472 Jan  1 23:55 sa01
      -rw-r--r--   1 sys      sys      53033472 Jan  2 23:55 sa02
      -rw-r--r--   1 sys      sys      53033472 Jan  3 23:55 sa03
      -rw-r--r--   1 sys      sys      53033472 Jan  4 23:55 sa04
      -rw-r--r--   1 sys      sys      53033472 Jan  5 23:55 sa05
      -rw-r--r--   1 sys      sys      53033472 Jan  6 23:55 sa06
      -rw-r--r--   1 sys      sys      36828800 Jan  7 16:35 sa07
      -rw-r--r--   1 sys      sys      14627513 Jan  2 23:06 sar02
      -rw-r--r--   1 sys      sys      14627693 Jan  3 23:05 sar03
      -rw-r--r--   1 sys      sys      14627733 Jan  4 23:05 sar04
      -rw-r--r--   1 sys      sys      14627701 Jan  5 23:05 sar05
      -rw-r--r--   1 sys      sys      14627519 Jan  6 23:05 sar06
    
    E pronto, está sendo gerado um relatório de analíse de consumo de recursos do seu servidor.

    Uma dica importante é monitorar o primeiro dia e, se possível, a primeira semana, certificando-se de que a política de limpeza desses arquivos está sendo feita adequadamente, de forma que o /var não fique cheio e possa comprometer seu sistema.

Veja a relação completa dos artigos de Angelo Roberto Bonfieti Junior

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.97/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1573 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Asterisk na Prática 2ª Edição