Iotop mostra swapin mas vmstat si é zero

2

Eu corro iotop e vmstat em um servidor CentOS. Sob alguma carga, a coluna iotop swapin começa a exibir valores em torno de 5% a 20% para alguns processos. Mas o campo vmstat si permanece em zero. Eu pensei que vmstat si e iotop swapin ambos refletiriam a troca. Como o si pode ser zero enquanto o iostat mostra swapin significativo ?

Nota lateral :

vmstat si : Quantidade de memória trocada do disco (/ s)

    
por user2797863 08.03.2014 / 13:54

1 resposta

2

Se você der uma olhada no diagrama que publiquei neste P & D Q & A intitulado: Diagrama do kernel Linux versus ferramentas de desempenho? mostra o subsistema do kernel do Linux em que cada uma dessas ferramentas está exibindo dados de desempenho.

iotop objetivo principal é mostrar estatísticas do ponto de vista da interface do dispositivo de bloco. Então, esse seria seu disco rígido, por exemplo. Enquanto vmstat mostra estatísticas do subsistema de memória virtual do kernel.

Este parágrafo da página de manual do iotop também explica o que está acontecendo:

iotop displays columns for the I/O bandwidth read and written by each process/thread during the sampling period. It also displays the percentage of time the thread/process spent while swapping in and while waiting on I/O. For each process, its I/O priority (class/level) is shown.

Exemplo

Total DISK READ :       0.00 B/s | Total DISK WRITE :      36.93 K/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND  
  303 be/3 root        0.00 B/s   29.54 K/s  0.00 %  4.42 % [jbd2/dm-1-8]
29559 be/4 saml        0.00 B/s    7.39 K/s  0.00 %  0.00 % google-chrome-stable [Chrome_HistoryT]

Assim, no exemplo acima, o jdb2 gastou 4.42% do seu tempo esperando por recursos de E / S. Isso é sobre a sua vida, não neste momento particular.

A saída de vmstat está mostrando as estatísticas em andamento da memória virtual, indicando as páginas que estão sujas ou precisam ser empurradas / extraídas da troca, portanto, você está vendo essas páginas sendo transportadas por lá. Você não tem indicações de vmstat a que processo essas páginas pertencem, apenas que houve páginas trocadas in / out.

$ vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 2  0 2990956 1429112  45664 712416    8   15    50   149    7   33 34  5 60  2
 0  0 2990948 1385392  45696 725096    0    0  2009    36  833 1556  6  1 92  1
 0  0 2990948 1380700  45704 726516    0    0     0    16  700 1423  3  1 95  1
 2  0 2990944 1386960  45760 724400    3    0     3   264 1075 1837  5  1 91  3

O si & so colunas são as estatísticas relacionadas a troca.

Então por que o si do vmstat mostra 0?

O valor relatado para si é, na verdade, uma taxa de valor de mudança (quantidade movida por segundo). Veja este artigo intitulado: Use o vmstat para monitorar o desempenho do sistema :

The swap section reports the rate that memory is sent to or retrieved from the swap system. By reporting “swapping” separately from total disk activity, vmstat allows you to determine how much disk activity is related to the swap system.

The si column reports the amount of memory that is moved from swap to “real” memory per second. The so column reports the amount of memory that is moved to swap from “real” memory per second.

Dado isso, é provável que, mesmo que um processo esteja relatando que está usando swap através de iostat , esse uso de swap provavelmente não seja suficiente para ser capturado ao longo de um segundo que seria mostrado em vmstat ' s medição "si".

    
por 08.03.2014 / 14:21