a Introdução de runqstat – Novo Linux Fila e da Carga Média Ferramenta

Getting real CPU, Carga Média no Linux

Linux Carga Média é tão velha como as montanhas, e sobre como confuso, como alguns engenheiros pode mesmo dizer-lhe que ele realmente é, ou como ele é calculado.,
Felizmente, Brendon Gregg tem um grande resumo, incluindo sua história, no Linux Médias de Carga: Resolver o Mistério, onde você pode ver o núcleo do problema:

Linux Carga Média inclui e/S

É como simples como isso. Ao contrário de todos os outros sistemas do tipo UNIX (Solaris, AIX, etc.), O Linux conta tanto processos executáveis / executáveis e bloqueados (ininterruptíveis), que geralmente estão esperando por I/O. Isso é uma coisa ruim, e data de um patch arcaico de 24 anos que Brendon encontrou.por que nos importamos?,

importamo-nos porque em qualquer sistema de uso misto (usando CPU e I / O), A média de carga resultante é altamente variável e frequentemente inútil. Isso pode ser especialmente ruim com sistemas altamente roscados que podem causar E/S, então é fácil ter dezenas ou centenas deles bloqueados em discos lentos.

O Que a maioria de nós realmente quer é a medida tradicional Unix da média de carga, que é o número médio de processos runnable média ao longo do tempo. Isto nos diz como o nosso sistema está carregado, e nós podemos olhar para a fila como uma medida de saturação, i.e., uma fila de CPU contínua significa que estamos sobrecarregados.

So, how can we get that?

nós realmente queremos o comprimento da fila de execução do CPU, que se torna> 0 quando os processos têm de esperar pela CPU. Mas é difícil conseguir com precisão, e o kernel Linux não é muito amigável nesta área.

Em Primeiro Lugar, O que as pessoas do Linux chamam de Fila de execução inclui executar tarefas, por isso não é realmente a fila, mas a fila mais o que está em execução. Isso é confuso, e assim você precisa subtrair o número de CPUs para ter uma noção da fila real.,

várias ferramentas podem obter o tamanho actual da Fila instantânea de execução. Isto é o que mostra a coluna vmstat” r” e “sar-q”; ambos obtem isto da métrica procs_running de /procc/stat.

o problema é que este é um número instantâneo, por isso é muito barulhento e precisa ser calculado em média para obter dados úteis, mas o kernel não vai fazer isso para você. Idealmente, haveria uma saída de kernel em / proc apenas para CPU e i / O apenas carregar médias, mas ninguém criou isso ainda.,

então precisamos de uma ferramenta que tente emular como a carga média funciona, por rápida amostragem deste tamanho de Fila de execução instantânea, e média Isso ao longo do tempo.

introdução runqstat

runqstat Faz isto — é uma simples ferramenta de linha de comandos escrita em Go que, por padrão, amostras deste tamanho de Fila a cada 10ms e médias isto ao longo de um segundo. O objetivo é uma medida estável e precisa de como o sistema está ocupado.,
Ele inclui opções para mudar a taxa de amostra e tempo de média, além de subtrair o número de CPUs para que você possa apenas ver o tamanho real da fila, se você quiser.

ele também tem uma opção para calcular a contagem bloqueada média, que, em teoria, você pode subtrair da média de carga para obter uma visão diferente da saturação da CPU (e para ver a quantidade de problemas que a média de carga está causando).com esta ferramenta, as equipes de ops finalmente têm uma boa maneira de monitorar sua saturação de Servidores Linux.

encontre-o no Github-runqstat

Share

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *