(Um cara do Windows pergunta) Medindo a latência do disco no Linux: eu me preocupo?

11

No Windows, sempre que eu quero validar / confirmar que pode haver problemas relacionados às E / S em um volume em que um banco de dados ou outro aplicativo de baixa latência vive, verifico a latência do disco.

Se eu vir o contador de Média de disco / transferência média do Windows > 18-20ms de forma consistente, meu canário em uma mina de carvão acabou de morrer e preciso investigar mais. Simplesmente morto.

Estou vendo o Linux agora e não vejo uma métrica semelhante baseada em latência. A pesquisa rápida que fiz indica que talvez eu nem queira ... Vejo muitas referências à espera de E / S como a maioria das pessoas rastreia isso.

Existe uma regra prática que você usa em relação a isso? Por exemplo, QUALQUER espera de E / S é ruim para o volume de um banco de dados? Existe um comando iostat simples que me oferece uma visão melhor da integridade geral do disco do que apenas o TOP visual?

Muito obrigado!

Russell Christopher
fonte
4
Você pode procurarioping
ewwhite 4/04
Obrigado, @whwhite. Acho que estou me perguntando se preciso mudar completamente meu foco e, em vez disso, monitorar isso de uma maneira diferente, sabe?
Russell Christopher
2
Ative a coleção sysstat em seus sistemas. Em seguida, você pode examinar a porcentagem de CPU do iowait, que é muito útil para diagnosticar a lentidão relacionada à IO.
EEAA 04/04
2
@RussellChristopher Você pode ver um exemplo de sarsaída aqui . Preste atenção na %iowaitcoluna.
EEAA 04/04
@ Matt, embora seja MUITO semelhante, o foco é um pouco diferente. Esse controle de qualidade está mais focado na execução de testes em um ambiente simulado, onde, como esse controle de qualidade, parece ser mais sobre o monitoramento do desempenho atual no ambiente de produção.
precisa saber é o seguinte

Respostas:

12

Pessoalmente, uso o comando iostat -xk 10e olho a awaitcoluna.

  • -x Exibe estatísticas estendidas.
  • -k Exibe estatísticas em kilobytes por segundo. Ou use m para megabytes / s.
  • 10 intervalo de exibição em segundos

Essa é uma métrica praticamente idêntica à do Disco médio do Windows sec / Transfer e é listada em ms em vez de segundos. Portanto, regras práticas similares podem ser aplicadas, embora isso dependa de todo tipo de coisa. Normalmente, acho que os usuários começam a reclamar aos 15ms e 20ms é muito ruim.

Pressione ctrl + c para sair ou especifique o número de iterações a serem exibidas com o parâmetro count. Observe que o primeiro resultado da iteração é fortemente inclinado devido ao pequeno tempo de amostra usado na primeira iteração.

Da man iostatpágina

aguardar O tempo médio (em milissegundos) para que as solicitações de E / S emitidas para o dispositivo sejam atendidas. Isso inclui o tempo gasto pelas solicitações na fila e o tempo gasto atendendo-as.

Editar: await é a principal métrica que eu uso para assistir a um disco sob cargas de produção para ver se sua taxa de transferência e iops conseguem acompanhar a demanda.

O% iowait stat é mais sobre o equilíbrio entre CPU e uso de disco. % iostat permanecerá abaixo do esperado se a atividade da CPU e do disco for alta. Por outro lado, iniciando em níveis de uso de disco razoavelmente baixos, o% iostat pode ser relativamente alto se a CPU estiver ociosa. Dito isto, aguardar também precisa ser tomado com um grão de sal. Se houver muita leitura / gravação sequencial, a figura será inclinado para um valor mais baixo, e sua regra geral de 18 a 20ms não será útil nessas condições, porque a maioria dos pedaços que estão sendo gravados serão os dados sequenciais e serão atendidos. pelo disco muito rapidamente, enquanto o outro io aleatório estará aguardando, devido ao sistema NCQ (Native-Command-Queuing) incorporado ao disco para otimizar a taxa de transferência, permitindo que o disco escolha a sequência em que as solicitações serão atendidas.

BeowulfNode42
fonte
Obrigado @ beowulfNode42. Essa é a métrica principal que você usa em termos de "disco defeituoso"? A New Relic parece focar na porcentagem de espera de E / S e utilização de disco (leitura e gravação) ... Isso me faz pensar se estou perseguindo a métrica errada ou se eles estão simplesmente relatando informações menos úteis ...
Russell Christopher
@RussellChristopher as outras estatísticas fornecem o contexto necessário para interpretar as informações de espera. por exemplo, existem muitos iops (r / e w / s), muitos MB / s, é o tamanho médio da solicitação (avgrq-sz) grande ou pequeno e qual é o tamanho da fila média (avgqu-sz). Sim, junto com as métricas relacionadas à CPU% iowait,% user,% system etc para verificar se o disco está diminuindo a velocidade da CPU ou vice-versa.
precisa saber é o seguinte