Como o comprimento médio da fila de execução pode ser 1, mas a média da carga é quase zero

1

(Originalmente postei isso no Stack Overflow - aconselhado a movê-lo para cá).

No fedora 17, quando executo o comando sar para ver a atividade de carga média, quase sempre mostra um comprimento de fila de execução de 1, embora o sistema esteja ocioso e as médias de carga sejam praticamente zero. Meu entendimento do comprimento da fila de execução e como isso se relaciona com a média de carga do Linux sugere que se o comprimento da fila de execução for realmente 1 em média durante um período de tempo, para o meu sistema quad core a média de carga deve ser de aproximadamente 25% meu caso leu em torno da marca de 1,00:

$ sar -q 30 60
Linux 3.9.10-100.fc17.i686 (blah)   22/05/14    _i686_  (4 CPU)

16:29:10      runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
16:29:40            1       547      0.02      0.07      0.57         0
16:30:10            1       548      0.09      0.08      0.56         0
16:30:40            1       547      0.05      0.07      0.54         0
16:31:10            1       547      0.03      0.06      0.52         0
16:31:40            0       547      0.02      0.06      0.51         0
16:32:10            1       547      0.01      0.05      0.49         0
16:32:40            1       547      0.13      0.08      0.49         0
16:33:10            1       547      0.08      0.07      0.47         0
16:33:40            1       547      0.05      0.07      0.46         0

Se eu, então, sondar frequentemente tarefas executáveis, eu ocasionalmente vejo o processo estranho aparecer (eu faço isso com ps r -A | grep -v 'ps r -A'). Eu teria esperado ver um processo aparecer regularmente para estar alinhado com o resultado do sar.

Então, se eu chutar de um único processo segmentado que consome o máximo de CPU possível, o tamanho da fila de execução aumenta imediatamente para 2 (o que é esperado nas circunstâncias), mas estranhamente após um tempo a fila de execução cai para 1 de novo?

Linux 3.9.10-100.fc17.i686 (blah)   22/05/14    _i686_  (4 CPU)

16:32:40      runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
16:33:10            1       547      0.08      0.07      0.47         0
16:33:40            1       547      0.05      0.07      0.46         0

START SCRIPT

16:34:10            2       548      0.11      0.08      0.45         0
16:34:40            2       548      0.51      0.18      0.47         0
16:35:10            2       548      0.70      0.26      0.49         0
16:35:40            2       548      0.82      0.33      0.50         0
16:36:10            2       548      0.89      0.39      0.52         0
16:36:40            2       548      0.93      0.45      0.53         0
16:37:10            2       548      0.96      0.50      0.55         0
16:37:40            2       548      1.04      0.57      0.57         0
16:38:10            2       548      1.02      0.61      0.58         0
16:38:40            2       548      1.01      0.64      0.60         0
16:39:10            2       548      1.09      0.70      0.61         0
16:39:40            2       548      1.05      0.72      0.63         0
16:40:10            3       550      1.11      0.77      0.64         0
16:40:40            3       549      1.06      0.79      0.65         0
16:41:10            3       549      1.04      0.81      0.67         0
16:41:40            3       549      1.02      0.83      0.68         0
16:42:10            2       549      1.01      0.84      0.69         0
16:42:40            2       549      1.01      0.86      0.70         0
16:43:10            1       549      1.07      0.89      0.71         0
16:43:40            1       549      1.04      0.90      0.72         0
16:44:10            1       549      1.03      0.91      0.73         0
16:44:40            1       549      1.02      0.92      0.74         0
16:45:10            1       548      1.01      0.93      0.75         0
16:45:40            1       548      1.01      0.93      0.75         0
16:46:10            1       548      1.00      0.94      0.76         0
16:46:40            1       548      1.00      0.94      0.77         0
16:47:10            1       548      1.00      0.95      0.78         0
16:47:40            1       548      1.00      0.96      0.78         0
16:48:10            1       548      1.00      0.96      0.79         0

Alguém pode explicar o que está acontecendo aqui? A única explicação que posso pensar é que existe alguma tarefa especial do sistema que pode utilizar a CPU se nada mais for senão:

  1. não está incluído nos cálculos de média de carga e
  2. Desistirá do tempo de CPU se um processo chegar e precisar

OR

Quando o comando sar mostra amostras da fila de execução, ele vê a si mesmo, mas isso não explica por que a fila de execução permanece permanentemente em um com o script de carregamento cpu em execução?

OR

Eu não entendi o conceito da média de carga / fila de execução.

Alguma sugestão muito apreciada!

ATUALIZAÇÃO: Então eu tentei novamente em uma máquina diferente com a mesma versão do fedora e sar etc. Desta vez eu estou vendo um comprimento de fila de execução consistente de 0 quando o sistema está ocioso. Também tentei em uma máquina centos 5.7, novamente, comprimento da fila de execução é consistentemente 0 quando ocioso.

Então, presumivelmente, o sar não se vê instantaneamente na fila de execução. Ainda sem entender por que essa máquina reporta ~ 0 para a média de carga, mas mede consistentemente 1 para o tamanho da fila de execução.

    
por user3665821 23.05.2014 / 09:50

2 respostas

2

Este é apenas um palpite, mas o efeito é facilmente explicado se o comprimento da fila de execução não for um valor médio (e por que deveria ser se já houver três valores médios?), mas um ponto no tempo. A única entrada sar vista na fila de execução é sempre sar . A menos que você adicione um processo, nesse caso, haverá dois.

    
por 23.05.2014 / 10:29
0

Eu concluí que o SAR runq_sz é um instantâneo instantâneo e não uma média porque

a) Eu comparei o top vs sar por segundo em comparação com a média de carga superior em um servidor de baixa carga e quando eu a média dos valores de 60 sar por segundo em um minuto é muito mais do que a média de carregamento do topo, mas mais simplesmente ...

b) É sempre um inteiro. Se fosse uma média (mesmo por segundo) seria fracionária como as médias de carga ou cpu

    
por 21.11.2016 / 17:32