Sysstat: exemplos práticos de uso do comando sar
O sar pode ser executado direto na linha de comando, por qualquer usuário, sem privilégios especiais. Veja:
este comando serve para mostrar a versão do sar, em execução:
# sar -V
O exemplo, abaixo, mostra as estatísticas referentes ao uso da CPU do seu computador, com 1 segundode intervalo, 5 vezes:
# sar 1 5
resultado:
Linux 3.13.0-32-generic (VoYag3r) 29-07-2014 _i686_ (2 CPU)
17:04:49 CPU %user %nice %system %iowait %steal %idle
17:04:50 all 23,62 0,00 1,51 0,00 0,00 74,87
17:04:51 all 43,72 0,00 2,01 0,00 0,00 54,27
17:04:52 all 28,50 0,00 2,50 0,00 0,00 69,00
17:04:53 all 33,00 0,00 2,00 0,00 0,00 65,00
17:04:54 all 30,77 0,00 1,03 0,00 0,00 68,21
Média: all 31,92 0,00 1,81 0,00 0,00 66,26
Alguns exemplos práticos de uso do sar, na linha de comando
Se quiser se referir a uma data especial, basta adicionar o parâmetro -f /var/log/sysstat/saXX ao final da linha de comando do sar.
Toda vez em que você executar o comando sar, ele irá mostrar, na primeira linha, um texto semelhante a este:
Mostra o uso cumulativo, em tempo real, de todas as unidades de processamento do sistema = # sar -u
Se você usar o parâmetro ALL, vai ver mais informações. Experimente: # sar -u ALL
Você pode usar as opções -P ALL para ver estatísticas de uso de todos os núcleos das CPUs separados:
# sar -P ALL 1 2
O resultado, abaixo, mostra as estatísticas dos núcleos (0 e 1) da CPU, com 1 segundo de intervalo, 2 vezes:
Linux 3.13.0-32-generic (VoYag3r) 01-08-2014 _i686_ (2 CPU)
17:00:03 CPU %user %nice %system %iowait %steal %idle
17:00:04 all 58,88 0,00 1,02 0,00 0,00 40,10
17:00:04 0 17,17 0,00 3,03 0,00 0,00 79,80
17:00:04 1 100,00 0,00 0,00 0,00 0,00 0,00
17:00:04 CPU %user %nice %system %iowait %steal %idle
17:00:05 all 54,00 0,00 1,00 0,00 0,00 45,00
17:00:05 0 8,16 0,00 1,02 0,00 0,00 90,82
17:00:05 1 100,00 0,00 0,00 0,00 0,00 0,00
Média: CPU %user %nice %system %iowait %steal %idle
Média: all 56,42 0,00 1,01 0,00 0,00 42,57
Média: 0 12,69 0,00 2,03 0,00 0,00 85,28
Média: 1 100,00 0,00 0,00 0,00 0,00 0,00
Como obter estatísticas individuais de um dos núcleos (cores) # sar -P 1 1 5
Linux 3.13.0-32-generic (VoYag3r) 01-08-2014 _i686_ (2 CPU)
17:07:19 CPU %user %nice %system %iowait %steal %idle
17:07:20 1 15,84 0,00 3,96 0,00 0,00 80,20
17:07:21 1 43,00 0,00 5,00 0,00 0,00 52,00
17:07:22 1 19,39 0,00 2,04 0,00 0,00 78,57
17:07:23 1 100,00 0,00 0,00 0,00 0,00 0,00
17:07:24 1 100,00 0,00 0,00 0,00 0,00 0,00
Média: 1 55,71 0,00 2,20 0,00 0,00 42,08
Estatísticas de uso de memória = # sar -r 1 3
veja o resultado:
Linux 3.13.0-32-generic (VoYag3r) 01-08-2014 _i686_ (2 CPU)
17:29:16 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
17:29:17 304296 1747916 85,17 13572 710340 3142020 44,73 792276 870516 168
17:29:18 303924 1748288 85,19 13572 710340 3142020 44,73 791900 870516 168
17:29:19 303212 1749000 85,23 13572 710340 3142020 44,73 792796 870516 168
Média: 303811 1748401 85,20 13572 710340 3142020 44,73 792324 870516 168
Variações do comando:
sar -r
sar -r 1 5
sar -r 1 3 -f /var/log/sysstat/sa30
Como acompanhar o uso da memória swap = # sar -S 1 5
Como você pode ver, no meu sistema, está havendo uso do swapping:
Linux 3.13.0-32-generic (VoYag3r) 01-08-2014 _i686_ (2 CPU)
17:54:43 kbswpfree kbswpused %swpused kbswpcad %swpcad
17:54:44 4970576 2020 0,04 0 0,00
17:54:45 4970576 2020 0,04 0 0,00
17:54:46 4970576 2020 0,04 0 0,00
17:54:47 4970576 2020 0,04 0 0,00
17:54:48 4970576 2020 0,04 0 0,00
Média: 4970576 2020 0,04 0 0,00
Outras maneiras úteis de usar o sar
Você pode experimentar também estas outras variações de uso do sar:
sar -S
sar -S -f /var/log/sysstat/sa30 — vai buscar os dados do dia 30 (sa30).
sar -R — para identificar o número de páginas de memória liberadas, usadas e em cache a cada segundo, no sistema.
sar -H — para identificar as hugepages (em KB) em uso ou disponíveis.
sar -B — para gerar estatísticas (em KB) de dados paginados em relação ao disco por segundo.
sar -W — para gerar estatísticas de swap de páginas por segundo.
Como acompanhar o fluxo (Entrada/Saída) de dados
O comando, abaixo, mostra as estatísticas de fluxo de entrada e saída de dados (E/S), a cada 1 segundo e3 vezes:
# sar -b 1 3
Linux 3.13.0-32-generic (VoYag3r) 04-08-2014 _i686_ (2 CPU)
21:43:48 tps rtps wtps bread/s bwrtn/s
21:43:49 0,00 0,00 0,00 0,00 0,00
21:43:50 1,00 0,00 1,00 0,00 328,00
21:43:51 0,00 0,00 0,00 0,00 0,00
Média: 0,33 0,00 0,33 0,00 109,33
Significado dos campos
tps – Transactions per second ou transações por segundo (leitura e gravação incluídas).
rtps – Read transactions per second ou transações de leitura por segundo.
wtps – Write transactions per second ou transações de escrita por segundo.
bread/s – Bytes read per second ou bytes lidos por segundo.
bwrtn/s – Bytes written per second ou bytes escritos por segundo.
Monitorando atividades de dispositivos de E/S
# sar -p -d 1 1
Linux 3.13.0-32-generic (VoYag3r) 05-08-2014 _i686_ (2 CPU)
19:23:44 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
19:23:45 sda 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
Média: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Média: sda 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
Com o uso do parâmetro -p é possível ter nomes mais detalhados, comosda, sdb, sda1, sda2, sdc1, etc.
Experimente mais algumas variantes do comando:
sar -d -f /var/log/sysstat/sa>XX — substitua o XX pelo dia do mês, cujos dados você deseja ver.
sar -p -d 1 10
Determine os valores do context switching por segundo
O parâmetro -w vai exibir a quantidade total de processos criados por segundo, na primeira coluna, e o número de chaveamentos realizados por segundo (cswch/s), na outra coluna.
Veja como:
# sar -w 1 3
Linux 3.13.0-32-generic (VoYag3r) 06-08-2014 _i686_ (2 CPU)
14:12:17 proc/s cswch/s
14:12:18 0,00 492,00
14:12:19 0,00 650,00
14:12:20 0,00 619,00
Média: 0,00 587,00
Como ver estatísticas de rede com o sar
DEV – Exibe estatísticas vitais para dispositivos de rede eth0, eth1, wlan0 etc.
EDEV – Exibe números das falhas referentes aos dispositivos de rede.
NFS – Mostra as atividades dos clientes do sistema de arquivos de rede (Network File System).
NFSD – Mostra as atividades dos servidores NFS.
SOCK – Lista os sockets do IPv4 em uso.
IP – Exibe o tráfego na rede IPv4.
EIP – Mostra os erros na rede IPv4.
ICMP – Mostra o tráfego na rede ICMPv4.
EICMP – Exibe erros na rede ICMPv4.
TCP – Exibe o tráfego na rede TCPv4.
ETCP – Exibe erros na rede TCPv4.
UDP – Mostra o tráfego de rede UDPv4.
as opções SOCK6, IP6, EIP6, ICMP6, UDP6 são equivalentes às anteriores, só que voltadas para redes IPv6.
ALL – Exibe todas as informações dos itens anteriores. A saída deste comando é bastante extensa.
Exemplo de uso:
# sar -n IP 1 2
Linux 3.13.0-32-generic (VoYag3r) 06-08-2014 _i686_ (2 CPU)
17:51:58 irec/s fwddgm/s idel/s orq/s asmrq/s asmok/s fragok/s fragcrt/s
17:51:59 3,00 0,00 3,00 0,00 0,00 0,00 0,00 0,00
17:52:00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
Média: 1,50 0,00 1,50 0,00 0,00 0,00 0,00 0,00
Relacione os dados obtidos pelo sar, usando start time
Ao analisar os dados do histórico, contido no arquivo /var/log/sysstat/saXX, com o uso da opçãosar -f, é possível observar todos os dados exibidos a começar pelo horário de 12:00 a.m ou00:00:00.
Você pode mudar a hora do início do relatório.
O parâmetro -s hh:mi:ss permite especificar um horário personalizado para o sistema usar como horário de início do relatório.
Veja como indicar o início do relatório de média de carga, para as 06 da manhã:
sar -q -f /var/log/sysstat/sa05 -s 06:00:00
Como não há meios (até a versão que eu estou usando) de estabelecer uma hora limite pro relatório, é necessário lançar mão de “outros artifícios”.
No exemplo abaixo, a saída do comando é filtrada pelo comando head:
sar -q -f /var/log/sysstat/sa05 -s 06:00:00 | head
Linux 3.13.0-32-generic (VoYag3r) 05-08-2014 _i686_ (2 CPU)
06:05:01 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
06:15:01 0 303 0,27 0,23 0,13 0
06:25:01 0 334 0,25 0,31 0,27 0
06:35:01 0 336 0,35 0,20 0,22 1
06:45:01 0 333 0,04 0,15 0,20 0
06:55:01 0 334 0,12 0,13 0,16 0
07:05:01 0 333 0,25 0,25 0,19 0
07:15:01 0 333 0,09 0,15 0,15 0
Comando head
A função do comando head é exibir a primeira parte de cada arquivo enviado para ele.
Como padrão, o comando exibe as primeiras 10 linhas do arquivo.
No exemplo, abaixo, usei o comando grep para filtrar as saídas que ocorrem aos 15 minutos de cada hora. Veja como ficou:
# sar -q -f /var/log/sysstat/sa05 -s 06:00:00 | grep -i ":15:01"
06:15:01 0 303 0,27 0,23 0,13 0
07:15:01 0 333 0,09 0,15 0,15 0
08:15:01 0 338 0,04 0,11 0,14 0
09:15:01 2 336 0,25 0,16 0,15 0
10:15:01 0 337 0,16 0,19 0,16 0
11:15:01 0 337 0,09 0,17 0,24 0
12:15:01 0 343 0,52 0,54 0,79 0
13:15:01 0 334 0,06 0,07 0,12 0
14:15:01 3 351 0,94 0,77 0,63 0
15:15:01 0 349 0,40 0,50 0,50 0
16:15:01 0 345 0,42 0,39 0,42 0
17:15:01 5 390 3,79 2,93 2,08 0
18:15:01 0 356 0,21 0,32 0,94 0
19:15:01 0 359 0,46 0,65 0,71 0
20:15:01 0 364 0,75 0,49 0,61 0
21:15:01 1 362 0,74 0,45 0,47 0
22:15:01 2 362 0,28 0,39 0,48 0
23:15:01 4 362 0,43 0,46 0,54 0
Fila de execução e média de carga
O parâmetro -q retorna valores, em 6 colunas:
runq-sz — comprimento da fila (número de tarefas esperando sua hora de execução).
plist-sz — Número de itens na lista de tarefas.
ldavg-1 — Média de carga (de trabalho) do sistema, no último minuto.
A média da carga é computada a partir da quantidade média de tarefas que estejam ou que possam estar em execução (R state) e o número de tarefas em “dormência” ininterrupta (D state) dentro do intervalo especificado (1 minuto).
ldavg-5 — Média de carga do sistema nos últimos 5 minutos.
ldavg-15 — Média de carga do sistema nos últimos 15 minutos.
blocked — Número momentâneo de tarefas bloqueadas, esperando a conclusão do fluxo de E/S.
Veja um exemplo:
# sar -q 1 5
Linux 3.13.0-32-generic (VoYag3r) 07-08-2014 _i686_ (2 CPU)
15:39:02 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
15:39:03 1 322 0,42 0,56 0,68 0
15:39:04 1 321 0,38 0,55 0,67 0
15:39:05 3 321 0,38 0,55 0,67 0
15:39:06 1 321 0,38 0,55 0,67 0
15:39:07 4 321 0,38 0,55 0,67 0
Média: 2 321 0,39 0,55 0,67 0
Comentários
Postar um comentário