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

9

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

Se eu vir o contador Média de disco por segundo / Transferência do Windows > 18-20ms consistentemente, então meu canário em uma mina de carvão acabou de morrer e eu preciso investigar mais. Drop-dead simples.

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

Existe uma regra geral que você usa em relação a isso? Por exemplo, QUALQUER E / S espera eu vejo ruim para o volume de um banco de dados? Existe um comando iostat simples que me dá uma visão melhor do funcionamento geral do disco do que apenas olhar para o TOP?

Muito obrigado!

    
por Russell Christopher 04.04.2017 / 02:18

1 resposta

10

Pessoalmente, eu uso o comando iostat -xk 10 e vejo a coluna await .

  • -x Exibir 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 às janelas Média de disco sec / transferência e está listada em ms em vez de segundos. Então, regras similares podem ser aplicadas, embora isso dependa de todo tipo de coisas. Eu normalmente acho que os usuários começam a resmungar a 15ms e 20ms é muito ruim.

Pressione ctrl + c para sair ou especifique o número de iterações para visualizar com o parâmetro count. Observe que o primeiro resultado de iteração é muito distorcido devido à pequena amostra de tempo usada na primeira iteração.

Da página man iostat

await O tempo médio (em milissegundos) para solicitações de E / S emitidas para o dispositivo a ser servido. Isso inclui o tempo gasto pelas solicitações na fila e o tempo gasto na manutenção delas.

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

A estatística% iowait é mais sobre o equilíbrio entre o uso da cpu e do disco. % iostat permanecerá menor que o esperado se a ambas CPU e a atividade do disco forem altas. Por outro lado, a partir de níveis de uso de disco bastante baixos, o% iostat pode ser relativamente alto se o cpu estiver inativo. Dito isto, aguarde deve ser tomado com um grão de sal também. Se houver muita leitura / gravação seqüencial, ela distorcerá a figura para um valor mais baixo, e sua regra geral de 18 a 20 ms não será útil sob essas condições, pois a maioria dos blocos sendo gravados serão os dados sequenciais e serão atendidos pelo disco muito rapidamente, enquanto o outro io aleatório estará esperando, devido ao sistema Native-Command-Queuing (NCQ) embutido no disco para otimizar o throughput, permitindo que o disco escolha a sequência que as solicitações são atendidas.

    
por 04.04.2017 / 03:10

Tags