Quem administra servidores sabe que diversos comandos do *nix, como o top, uptime mostram uma métrica de carga no servidor, chamado “load average”.
Como exemplo, o comando top nos mostra:
top - 15:48:52 up 58 days, 23:14, 1 user, load average: 0.13, 0.11, 0.07 Tasks: 85 total, 1 running, 84 sleeping, 0 stopped, 0 zombie
Na primeira linha, temos as três métricas do load. Já vou adiantando e dizendo que elas se referem a uma média de 5, 10 e 15 minutos da carga do computador.
Essa métrica é importante do ponto de vista de planejamento de operações de servidores e data centers. Contudo, é difícil obter mais informações de como essas métricas são obtidas.
O Neil Gunther, um pesquisador renomado em capacity planning e autor do excelente Guerrilla Capacity Planning publicou uma série de artigos sobre o load average no TeamQuest. Pra resumir um pouco, os pontos principais (fugindo um pouco do formalismo matemático):
Intuitavamente, aprendemos que devemos nos manter longe de números altos no load average. Mas ninguém sabe direito o quão alto.
O load aproxima a curva do tamanho da fila de processos no kernel (em estado RUNNING ou RUNNABLE). Como essa fila muda muito rapidamente, o load é, na verdade, uma média móvel com atenuação exponencial. Na verdade, isso é um filtro passa-baixas, muito comuns em engenharia elétrica. Ou melhor ainda, é um sistema de primeira ordem (para os engenheiros de controle de plantão) com diferentes constantes de tempo (5, 10 e 15min).
Portanto, o load é um número absoluto. E não uma porcentagem de uso, ou de carga, como estamos acostumados a ver (como a ocupação do processador).
Bem, não vou ficar repetindo o artigo todo. Quem tiver curiosidade de saber mais sobre esses números mágicos, os artigos principais são:
UNIX Load Average Part 1: How It Works
UNIX Load Average Part 2: Not Your Average Average
Boa leitura!
Tags: capacity planning, guerrilla capacity planning, gunther, linux, load, neil gunther
One Trackback