sexta-feira, 21 de maio de 2010

Sar

Nome
sar – coleta, relatórios e salvar informações de atividades do sistema.

Sinopse
sar [ -A ] [ -b ] [ -B ] [ -c ] [ -d ] [ -i intervalo ] [ -p ] [ -q ] [ -r ] [ -R ] [ -t ] [ -u ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ] [ -n { DEV | EDEV | NFS | NFSD | SOCK | ALL } ] [ -x { pid | SELF | ALL } ] [ -X { pid | SELF | ALL } ] [ -I { irq | SUM | ALL | XALL } ] [ -P { cpu | ALL } ] [ -o [ arquivo ] | -f [ arquivo ] ] [ -s [ hh:mm:ss ] ] [ -e [ hh:mm:ss ] ] [ intervalo [ count ] ]

Descrição
O comando sar escreve na saída padrão o conteúdo das atividades selecionadas no sistema operacional. O sistema de contagem, com base nos valores da contagem e nos parâmetros de intervalo, grava informações em intervalos especificados em segundos. Se o parâmetro intervalo é definido como 0 (zero), o comando sar exibe as estatísticas média para o período desde que o sistema foi iniciado. O valor padrão do parâmetro count é 1. Se o valor for configurado como zero, então os relatórios são gerados de forma continua. Os dados coletados podem ser salvos em um arquivo especificado pela flag –o, além de ser exibido na tela. Se o arquivo for omitido, o sar usa o arquivo de dados padrão para gravar as atividades do sistema, o arquivo /var/log/sa/sadd, onde o parâmetro dd indica o dia corrente. Por padrão todos os dados disponibilizados pelo Kernel serão salvos no arquivo de dados. As exceções são as interrupções e dados de discos, para que as opções relevantes possam ser explicitamente passadas para o sar (  exemplo o sardc) quando os arquivos de dados são gravados, veja opções abaixo.

O comando sar extrai e escreve para a saída padrão registros previamente salvos em um arquivo. Este arquivo pode ser especificado pela flag –f ou, por padrão, o arquivo de dados padrão para gravar as atividades do sistema.

Sem a flag –P, o comando sar registra toda a estatística do sistema (todos os processadores), que são calculados como medias e os valores são expressos em percentagem, e como somas em outros casos. Se a flag –P for setada, o comando sar registra atividades que diz respeito ao processador ou processadores. Se –P ALL é setado, o comando sar registra estatísticas para cada processador individualmente e estatísticas globais entre todos os processadores.

Você pode selecionar informações sobre atividades específicas do sistema usando flags. Não especificando qualquer flag, seleciona apenas a atividade da CPU. Especificando a flag -A é equivalente a especificar -bBcdqrRuvwWy SUM-I-I n XALL-ALL-P ALL.

A atividade padrão do comando sar (relatório de utilização da CPU) pode ser uma das primeiras atividades que o usuário executa para iniciar investigação de atividade do sistema, porque monitora os principais recursos do sistema. Se a utilização da CPU é perto de  100 por cento (user + nice + system), a carga de trabalho mostrada esta engargalada.

Se várias amostras e vários relatórios são desejados, é conveniente  especificar um arquivo de saída para o comando sar. Executar o comando sar em background. A sintaxe para isso é:

sar -o arquivo intervalo count >/dev/null 2>&1 &

Todos os dados são capturados na forma binária e salvo em um arquivo (datafile). Os dados podem então ser exibidos com o comando sar usando a opção -f. Defina o intervalo e os parâmetros de contagem para selecionar registros de contagem em intervalos de um segundo. Se o parâmetro contagem não está definido, todos os registros guardados no arquivo será selecionado. Coleta de dados desta forma é útil para caracterizar o uso do sistema por um período de tempo e determinar os horários de pico.

Nota: O comando sar apenas relatórios sobre as atividades locais.

Opções

-A

Isto é equivalente a especificar -bBcdqrRuvwWy -I SUM -I XALL -n ALL -P ALL.

-b

Relatório de I/O e estatística de taxa de transferência. Os seguintes valores são exibidos:

tps

Número total de transferências por segundo que foram emitidos para dispositivos físicos. A transferência é uma solicitação de I/O para um dispositivo físico. Vários pedidos de lógica podem ser combinados em uma única solicitação de I/O para o dispositivo. A transferência é de tamanho indeterminado.

rtps

Número total de solicitações de leitura por segundo emitido para dispositivos físicos.

wtps

Número total de solicitações de gravação por segundo emitido para dispositivos físicos.

bread/s

A quantidade total de dados lidos a partir de dispositivos de blocos por segundo. Os blocos são equivalentes aos sectores com kernels 2.4 ou versão mais recente e, portanto, têm um tamanho de 512 bytes. Com os kernels mais antigos, é um bloco de tamanho indeterminado.

bwrtn/s

A quantidade total de dados gravados em dispositivos de blocos por segundo.

-B

Relatório de estatísticas de paginação. Os seguintes valores são exibidos:

pgpgin/s

Número total de kilobytes de paginação do sistema em disco por segundo. Nota: Com os kernels antigos (2.2.x), este valor é um número de blocos por segundo (e não kilobytes).
pgpgout/s Número total de kilobytes de paginação do disco em sistema por segundo. Nota: Com os kernels antigos (2.2.x), este valor é um número de blocos por segundo (e não kilobytes).

fault/s

Número de falhas de página (major + minor) fez pelo sistema por segundo (kernels 2.5 somente). Esta não é uma contagem de falhas de página que geram I/O, porque algumas falhas de página podem ser resolvidos sem I/O.

majflt/s

Número de falhas graves do sistema fez por segundo, aqueles que requerem o carregamento de uma página de memória de disco (kernels 2.5 somente).

-c

Relatório de atividade de criação de processo.

proc/s

Número total de processos criados por segundo.
-d Relatório de atividades para cada dispositivo de bloco (Kernels 2.4 ou maior). Quando os dados são exibidos, o dispositivo de especificação dev m-n é geralmente usado (coluna DEV). m é o número principal do dispositivo. Com os kernels mais recentes (2.5), n é o número menor de dispositivo, mas é apenas um número de seqüência com pré kernel 2.5. Os nomes de dispositivos podem também ser mostrados se a opção -p é usado (veja abaixo). Os valores para os campos avgqu-sz, await, svctm e %util pode estar indisponível e exibido como 0.00, com alguns kernels 2.4.

tps

Indica o número de transferências por segundo que foram envidado para o dispositivo. Vários pedidos de lógica podem ser combinados em uma única solicitação de I/O para o dispositivo. A transferência é de tamanho indeterminado.
rd_sec/s Número de setores lidos do dispositivo. O tamanho de um setor tem 512 bytes.
wr_sec/s Número de setores escritos do dispositivo. o tamanho de um setor tem 512 bytes.
avgrq-sz O tamanho médio (em setores) dos pedidos que foram emitidos para o dispositivo.
avgqu-sz O comprimento médio da fila de pedidos que foram emitidos para o dispositivo.

await

O tempo médio (em milissegundos) para solicitações de I/O  emitidos para o dispositivo. Isto inclui o tempo gasto pelos pedidos na fila e o tempo de serviço deles.

svctm

O tempo de serviço médio (em milissegundos) para solicitações de I/O que foram emitidos para o dispositivo.

%util

Percentagem de tempo de CPU durante o qual  solicitações de I/O foram emitidos para o dispositivo (utilização de banda para o dispositivo)Gargalo do dispositivo ocorre quando este valor é próximo de 100%.
-e [ hh:mm:ss ]
Definir o tempo final do relatório. O padrão é 18:00:00. Horas deve ser usada no formato de 24 horas. Esta opção pode ser usada apenas quando os dados são lidos ou gravados em um arquivo (as opções-f ou-o).
-f [ filename ]
Extrai registros do arquivo (Criado pela opção –o filename). O valor padrão do parâmetro filename é o arquivo de dados do dia atual, o arquivo  /var/log/sa/sadd.
-i interval
Selecionar registros de dados em segundos o mais próximo possível do número especificado pelo parâmetro interval.
-l { irq | SUM | ALL | XALL }
Relatório de estatísticas para um interrupt. irq é o número de interrupção.Especificando múltiplas  irq parâmetros -l na linha de comando vai olhar para várias interrupções independente. A palavra-chave SUM indica que o número total de interrupções recebidas por segundo será exibida. A palavra-chave ALL indica que as estatísticas dos primeiros 16 interrupções devem ser mostrados, Considerando que a palavra-chave XALL indica que as estatísticas de todas as interrupções, incluindo  APIC potenciais fontes de interrupção, devem ser relatados.
-n { DEV | EDEV | NFS | NFSD | SOCK | ALL }
Relatório de estatísticas de rede.

Com a palavra-chave DEV, estatísticas dos dispositivos de rede são relatados. Os seguintes valores são exibidos:

IFACE

Nome da interface de rede para que as estatísticas são relatados.
rxpck/s Número total de pacotes recebidos por segundo.
txpck/s Número total de pacotes transmitidos por segundo.
rxbyt/s Número total de bytes recebidos por segundo.
txbyt/s Número total de bytes transmitidos por segundo.
rxcmp/s Número recebidos de pacotes compactados por segundo (para cslip etc.)
txcmp/s Número transmitidos de pacotes compactados por segundo.
rxmcst/s Número de pacotes multicast recebidos por segundo.

Com a palavra-chave EDEV, estatísticas sobre falhas (erros) de dispositivos de rede são relatados. Os seguintes valores são exibidos:

IFACE

Nome da interface de rede para que as estatísticas são relatados.

rxerr/s

Número total de pacotes mal recebidos por segundo.

txerr/s

Número total pacotes mal enviados por segundo.

coll/s

Número de colisões por segundo, que aconteceu durante a transmissão de pacotes.
rxdrop/s Número de pacotes recebidos por segundo que foram dropados  por causa de uma falta de espaço em buffers linux.
txdrop/s Número de pacotes transmitidos por segundo que foram dropados  por causa de uma falta de espaço em buffers linux.

txcarr/s

Número de  erros que aconteceram por segundo, enquanto faz a transmissão de pacotes.
rxfram/s Número de erros de alinhamento de frame por segundo, que aconteceu em pacotes recebidos.

rxfifo/s

Número de erros de invasões FIFO que aconteceram por segundo em pacotes recebidos.

txfifo/s

Número de erros de invasões FIFO que aconteceram por segundo em pacotes transmitidos.

Com a palavra-chave NFS, estatísticas sobre a atividade do cliente NFS são relatados. Os seguintes valores são exibidos:

call/s

Número de solicitações RPC feitas por segundo.
retrans/s Número de solicitações RPC por segundo, aqueles que necessitavam de ser retransmitido (Por exemplo, devido a um timeout do servidor).

read/s

Número de 'leitura' chamadas RPC feitas por segundo.

write/s

Número de 'escrita' chamadas RPC feitas por segundo.

access/s

Número de 'acesso' chamadas RPC feitas por segundo.

getatt/s

Numero de 'getattr' chamadas RPC feitas por segundo.

Com a palavra-chave NFSD, estatísticas sobre a atividade do servidor NFS são relatados. Os seguintes valores são exibidos:

scall/s

Número de pedidos recebidos RPC por segundo.
badcall/s Número de solicitações RPC mal recebidas por segundo, aqueles cujo processamento gera um erro.

packet/s

Número de pacotes de rede recebidos por segundo.

udp/s

Número de pacotes UDP recebidos por segundo.

tcp/s

Número de pacotes TCP recebidos por segundo.

hit/s

Número de hit resposta pelo cache por segundo.

miss/s

Número de perdas em cache resposta por segundo.

sread/s

Número de 'leitura' RPC chamadas recebidas por segundo.

swrite/s

Número de 'escrita' RPC chamadas recebidas por segundo.
saccess/s Número de 'acesso' RPC chamadas recebidas por segundo.

sgetatt/s

Número de 'getattr' RPC chamadas recebidas por segundo.

Com a palavra-chave SOCK, estatísticas sobre sockets em uso são relatados. Os seguintes valores são exibidos:

totsck

O número total de sockets utilizados.

tcpsck

Número de sockets TCP atualmente em uso.

udpsck

Número de sockets UDP em uso atualmente.

rawsck

Número de sockets RAW atualmente em uso.

ip-frag

Número de fragmentos IP em uso atualmente.

A palavra-chave ALL é equivalente a especificar todas as palavras acima e, portanto, todas as atividades da rede são relatados.
-o [ filename ]
Salva as leituras no arquivo na forma binária. Cada leitura é um registro em separado. O valor padrão do parâmetro filename é o arquivo de dados do dia atual, o arquivo /var/log/sa/sadd.
-P { cpu | ALL }
Relatório de estatísticas por processador, para o processador especificado ou todos os processadores. Especificando as palavras-chave ALL o relatório de estatística será para cada processador individual, e globalmente para todos os processadores. Das flags que indicam as estatísticas que devem ser reportadas, apenas o –u e –l SUM são significativas com a flag -P. Note que o processador 0 é o primeiro processador.
-p Mostra o nome dos dispositivos. Use esta opção em conjunto com a opção -d. Por padrão nomes são mostrados como dev m-n onde m e n são os números maiores e menores para o dispositivo. Use esta opção para exibir os nomes dos dispositivos como eles (deve) aparecer no /dev. mapeamentos de nome são controladas pelo arquivo /etc/sysconfig/sysstat.ioconf.
-q Mostra o comprimento da fila e as médias de carga. Os seguintes valores são exibidos:
runq-sz Tamanho da fila (o número de processos à espera em tempo de execução).

plist-sz

Número de processos e threads na lista de processos.

ldavg-1

Carga média do sistema para o último minuto.

ldavg-5

Carga média do sistema para os ultimos 5 minutos.
ldavg-15 Carga média do sistema para os ultimos 15 minutos.
-r Relatório e estatística de memória e utilização do swap. Os seguintes valores são exibidos:

kbmemfree

Quantidade de memória livre disponível em kilobytes.
kbmemused Quantidade de memória usada em kilobytes. Isto não leva em consideração a memória utilizada pelo próprio kernel.

%memused

Porcentagem de memória utilizada.

kbbuffers

Quantidade de memória usada como buffer de kernel em kilobytes.

kbcached

Quantidade de memória usada para cache de dados pelo kernel em kilobytes.

kbswpfree

Quantidade de espaço swap livre em quilobytes.

kbswpused

Quantidade de espaço swap usado em kilobytes.

%swpused

Percentagem de swap utilizado.

kbswpcad

Quantidade de memória cache swap em kilobytes. Esta é a memória que já foi trocada, é trocado de volta, mas ainda também está na área de swap (Se a memória é necessária, não precisa ser trocado novamente, pois ele já está na área de swap. Isso economiza I/O).
-R Relatório Estatísticos de Memoria. Os seguintes valores são exibidos:

frmpg/s

Número de páginas de memória liberada pelo sistema por segundo. Um valor negativo representa um número de páginas alocadas pelo sistema. Note que uma página tem um tamanho de 4 kb ou 8 kB de acordo com a arquitetura da máquina.

bufpg/s

Número de páginas de memória adicional utilizado como buffers pelo sistema por segundo. Um valor negativo significa que as páginas menos usadas como buffers do sistema.

campg/s

Número de páginas em cache de memória adicional pelo sistema por segundo. Um valor negativo significa menos páginas em cache.
-s [ hh:mm:ss ]
Defina a hora de início dos dados, fazendo com que o comando sar extraia registros para o arquivo na hora definida, ou seguintes, da hora especificada. A hora de inicio padrão é 08:00. Horas deve ser dado no formato de 24 horas.
-t Ao ler dados de um arquivo de dados diários, sar indicam que deve exibir a data e hora no tempo local original do arquivo de dados criador. Sem esta opção, o comando  sar exibe a data e hora do local do usuário.
-u Relatório de utilização da CPU. Os seguintes valores são exibidos:

%user

Percentagem de utilização da CPU que ocorreram durante a execução a nível de usuário (aplicativos).

%nice

Percentagem de utilização da CPU que ocorreram durante a execução a nível de usuário com prioridade legal.
%system Percentagem de utilização da CPU que ocorreram durante a execução ao nível do sistema (kernel).

%iowait

Percentagem de tempo que a CPU ou CPUs ficou inativo durante o qual o sistema tinha um pedido de disco pendente I/O.

%steal

Mostra a porcentagem de tempo gasto na espera involuntário pelo CPU virtual ou CPUs quando o hypervisor servia outro processador virtual.

%idle

Percentagem de tempo que a CPU ou CPUs estavam ociosos e o sistema não tem um pedido de disco pendente I/O. Nota: No ambiente de hardware virtualizado, Isto também inclui o tempo gasto na espera involuntário pelo CPU virtual ou CPUs, enquanto o hypervisor servia outro processador virtual.
-v Relatório da situação de inode, arquivo e outras tabelas do kernel.

dentunusd

Número de entradas de cache não utilizadas no cache do diretório.

file-sz

Número de arquivo handles usado.

inode-sz

Número de handles de inode usado.

super-sz

Número de manipuladores de super-bloco alocado pelo kernel.

%super-sz

Percentagem de atribuição dos manipuladores do super-bloco no que diz respeito ao número máximo de manipuladores de super-bloco que o Linux pode alocar.

dquot-sz

Número de entradas de  quota atribuída ao disco.

%dquot-sz

Percentagem de entradas de cota de disco alocado no que diz respeito ao número máximo de entradas em cache de disco contingente que pode ser alocado.

rtsig-sz

Número de filas de sinais RT.

%rtsig-sz

Percentagem de sinais RT enfileiradas no que diz respeito ao número máximo de sinais de RT que podem ser enfileiradas.
handles - identificador especial designado a um arquivo que permite a um programa acessa-lo
-V Imprimir o número da versão e sai.
-w Relatório de atividade switching do sistema
cswch/s Número total de mudanças de contexto por segundo.
-W Relatório de estatísticas de swap. Os seguintes valores são exibidos:
pswpin/s Número total de páginas de troca do sistema trazido por segundo.
pswpout/s Número total de páginas de troca do sistema de saída por segundo.
-x { pid | SELF | ALL }
Relatório de estatísticas para um determinado processo. pid é o número de identificação do processo. A palavra-chave SELF indica que as estatísticas do sar devem ser relatados para o processo. A palavra-chave ALL indica que as estatísticas devem ser comunicados por todos os processos do sistema. Todas estas estatísticas não podem ser salvos em um arquivo. Portanto, esta opção será ignorada quando a opção-o é usado. Especificando vários parâmetros –x pid na linha de comando vai olhar para os múltiplos processos independentes. No presente momento, não mais de 256 processos podem ser monitorados simultaneamente. Os seguintes valores são exibidos:

minflt/s

O número total de falhas menores que o processo foi feito por segundo, aqueles que não tenham exigido o carregamento de uma página de memória de disco.

majflt/s

Número total de falhas graves que o processo fez por segundo, aqueles que requerem o carregamento de uma página de memória de disco.

%user

Percentagem de CPU usado pelo processo em execução, a nível de usuário (aplicativos), com ou sem prioridade legal.

%system

Percentagem de CPU usado pelo processo em execução, enquanto ao nível do sistema (kernel).

nswap/s

Número de páginas do espaço de endereço do processo que o sistema troca por segundo.

CPU

Número do processador para que o processo está anexado.
-X { pid | SELF | ALL }
Relatório de estatísticas para o processo filho do processo cujo PID é pid. A palavra-chave SELF indica que as estatísticas do sar devem ser relatados para o processo filho do processo. A palavra-chave ALL indica que as estatísticas devem ser relatados para todos os filhos dos processos de todos os processos do sistema. Todas estas estatísticas não podem ser salvos em um arquivo. Portanto, esta opção será ignorada quando a opção-o é usado. Especificando vários parâmetros –X pid na linha de comando vai olhar para os múltiplos processos independentes. No presente momento, não mais de 256 processos podem ser monitorados simultaneamente. Os seguintes valores são exibidos:

cminflt/s

O número total de falhas menores que os processos filhos fizeram por segundo, aqueles que não tenham exigido o carregamento de uma página de memória de disco.

cmajflt/s

Número total de falhas graves nos processos filhos  por segundo, aqueles que requerem o carregamento de uma página de memória de disco.

%cuser

Porcentagem de CPU utilizada pelos filhos durante a execução de processos ao nível de usuário (aplicação), com ou sem prioridade legal.

%csystem

Porcentagem de CPU utilizada pelo filho durante a execução de processos ao nível do sistema (kernel).
cnswap/s Número de páginas do espaço de endereço do processo filho que o sistema troca por segundo. Esse valor é sempre zero com kernel 2.5.
-y Relatório de atividades dos dispositivos TTY. Os seguintes valores são exibidos:

rcvin/s

Número de interrupções de recebimento por segundo para a linha serial atual. número de série da linha é dada na coluna TTY.

xmtin/s

Número de interrupções por segundo para a linha serial atual.

framerr/s

Número de erros de quadros por segundo para a linha serial atual.

prtyerr/s

Número de erros de paridade por segundo para a linha serial atual.

brk/s

Número de interrupções por segundo para a linha serial atual.

ovrun/s

Número de erros  por segundo para a linha serial atual.
Note-se que com os kernels recentes  2.6, estas estatísticas podem ser obtidas somente pelo root.

Ambiente

O comando sar leva em conta as seguintes variáveis de sistemas:

S_TIME_FORMAT
Se existe a variável e seu valor é ISO, então, a localidade atual será ignorado quando imprimir a data no cabeçalho do relatório. O comando sar usará o formato ISO 8601 (AAAA-MM-DD) no lugar.

S_TIME_DEF_TIME
Se esta variável existe e seu valor é UTC então o sar vai salvar seus dados em UTC (Dados ainda serão exibidos no horário local). sar também usará hora UTC em vez da hora local para determinar os dados atuais diária arquivo localizado em /var/log/sa.

Exemplos:

sar -u 2 5
Relatório de utilização da CPU para cada 2 segundos. 5 linhas são exibidas.

sar -I 14 -o int14.file 2 10
Relatório sobre as estatísticas IRQ 14 para cada 2 segundos. 10 linhas são mostradas. Os dados são armazenados em um arquivo chamado int14.file.

sar -r -n DEV -f /var/log/sa/sa16
Relatório de memória, swap e estatísticas da rede salvos no arquivo de dados "sa16”.

sar –A
Mostrar todas as estatísticas atuais  salvos no arquivo diário.

3 comentários:

  1. Onde acho o Sar para instalar em meu debian?

    ResponderExcluir
  2. Ola, colega procure pelo pacote sysstat,ok.

    abraços

    ResponderExcluir
  3. Ola boa Tarde

    Para melhor entendimento, voce vc diz "carga"
    ldavg-5

    "Carga média do sistema para os ultimos 5 minutos"

    Esta carga voce ser refere ao load do servidor?

    Carga média do sis
    tema para os ultimos 5 minutos

    ResponderExcluir