Estudo de Caso IV – Parte 2

No Post de hoje, vamos continuar falando sobre monitoramento pontual. No post anterior, falamos sobre as ferramentas: top, ps, free. Hoje, falaremos sobre as ferramentas: vmstat, iostat.

Ferramentas – vmstat

Relata estatísticas sobre processos, memória, paginação, CPU e I/O de uma forma resumida e prática..

vinicius@vale:~$ vmstat 2
procs ———–memory———- —swap– —–io—- -system– —-cpu—-
r b swpd free buff cache si so bi bo in cs us sy id wa
6 0 0 3444152 283984 1253796 0 0 62 53 175 564 8 1 89 2
0 0 0 3444328 283984 1253296 0 0 0 0 142 337 1 0 99 0
0 0 0 3442840 283992 1253196 0 0 0 170 127 271 1 0 99 0
0 0 0 3442724 283992 1253200 0 0 0 0 144 363 0 0 99 0
Deve se ressaltar que a primeira coleta – primeira linha – deve ser descartada, pois, não representa a real situação do sistema. Diante disso, torna-se necessário informar a taxa de atualização de coletas, o qual, neste caso foi 2 segundos, senão será apresentado somente a primeira coleta.

No uso do vmstat destaca-se as seguintes informações:

  • Fluxo de uso de swap: – Através das colunas si e so é possível saber a quantidade de dados fluindo da memória para swap, ou vice-versa. É com estes indicadores que se determina se o “swap”esta sendo efetivamente usado e
    atrapalhando no desempenho.
  • Número de trocas de contexto: – Apresentado na coluna cs, este valor tende a subir quando se aumenta o número de processos.
    • Ferramentas – iostat

      É uma ferramenta de apresentação de estatísticas relacionada a I/O
      extremamente útil para um DBA. Podemos especificar dispositivos ou partições a serem monitorados..

      O “iostat” pode apresentar suas informações de forma resumida ou detalhada quando utilizada a opção -x.

      Assim como o vmstat a primeira coleta deve ser descartada e por isso sempre é necessário informar uma taxa de atualização.
      vinicius@vale:~$ iostat 2
      Linux 3.11.0-15-generic (vale) 02-02-2014 _x86_64_ (4 CPU)

      avg-cpu: %user %nice %system %iowait %steal %idle
      6,94 0,05 1,12 1,48 0,00 90,40

      Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
      sda 19,23 203,49 184,33 906427 821108
      sdb 0,16 4,58 0,00 20408 0

      avg-cpu: %user %nice %system %iowait %steal %idle
      0,50 0,00 0,38 0,38 0,00 98,75

      Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
      sda 1,00 6,00 0,00 12 0
      sdb 0,00 0,00 0,00 0 0

      Neste comando é possível separar as informações por dispositivo, bastando adicionar o nome do dispositivo na frente do comando: iostat sda 2, onde será coletado as informações de IO do dispositivo sda a cada 2 segundos.< span>

      No modo resumido destacam-se as seguintes informações:

      • Média de operações de IO por segundo: – É apresentado na coluna tps. É útil para determinar se os discos estão chegando próximo ao seu limite de IOPS..
      • Média da taxa de blocos lidos e gravados: – É apresentada nas colunas Blk_read/s e Blk_wrtn/s respectivamente. Este auxilia determinar qual tipo de operação pode estar gerando carga.

      Quando utilizado no modo detalhado traz informações mais especificas:

      vinicius@vale:~$ iostat 2 sda -x
      Linux 3.11.0-15-generic (vale) 02-02-2014 _x86_64_ (4 CPU)

      avg-cpu: %user %nice %system %iowait %steal %idle
      6,64 0,05 1,09 1,35 0,00 90,87

      Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
      sda 1,95 4,56 14,40 3,11 183,80 170,27 40,46 0,40 22,72 17,07 48,91 2,62 4,58

      avg-cpu: %user %nice %system %iowait %steal %idle
      0,13 0,00 0,25 0,00 0,00 99,62

      Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
      sda 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

      No modo detalhado destacam-se as seguintes informações:

      • Tamanho médio da fila: – Apresentado na coluna avgqu-sz, é média no tamanho da fila de IO no tempo mensurado.
      • Media de tempo de espera para concluir uma requisição: – Apresentado na
        coluna await, é a media de tempo gasto do inicio de uma requisição até receber o retorno do dispositivo.
      • Media de tempo de serviço: – Apresentado na coluna svctm, é media de tempo gasto a partir da saída da requisição do S.O. até seu retorno, pode ser considerado como tempo de resposta do dispositivo.
      • Porcentagem de utilização: – Apresentado na coluna %util, traz uma aproximação do uso do disco, quando atinge valores próximos a 100% pode-se dizer que o disco esta saturado.
        • Apesar de ser útil para determinar problemas de desempenho em disco a métrica de “tempo de serviço” não é mais confiável no Linux atualmente e será removido das próximas versões do “iostat” no Linux.
          Conclusão

          Neste post de hoje, vimos mais ferramentas para monitoramento pontual, no próximo post, finalizaremos o estudo de caso IV falando sobre uma ferramenta especial própria do postgresql, o pg_top. E partimos para o monitoramento contínuo, em um novo estudo de caso.