blktrace - diferenciando entre io seqüencial e aleatório

1

Estou procurando uma maneira de determinar se um aplicativo está fazendo E / S seqüencial ou aleatória. É possível olhar para uma captura do blktrace e dizer se a E / S é sequencial ou aleatória? Se sim, quaisquer exemplos de padrões que eu deveria estar procurando?

    
por BlackBeret 31.08.2014 / 13:49

1 resposta

2

Parece possível que blktrace + blkparse possa ser usado para obter essa informação. Olhando para o diagrama que incluí nesta U & Q & A: Diagrama do kernel Linux versus ferramentas de desempenho? , especificamente nesta seção.

blktracepareceestarposicionadoparamostraressetipodedados.Aoolharparaapáginadomanualparablkparse,mostraquevocêpodeincluironúmerosectornasaída.

trechodapáginademanualdoblkparse
OUTPUTDESCRIPTIONANDFORMATTINGTheoutputfromblkparsecanbetailoredforspecificuse--inparticular,toeaseparsingofoutput,and/orlimitoutputfieldstothosetheuserwantstosee.Thedataforfieldswhichcanbeoutputinclude:aAction,a(small)string(1or2characters)--seetablebelowformoredetailscCPUidCCommand...sSequencenumbersSSectornumber

Exemplo

$sudoblktrace/dev/sdaCtrl+C

Emseguida,analise-ocomblkparse:

$blkparsesda-f"%-10S %D %2c %8s %5T.%9t %5p %2a %3d\n" | head -10
4064336      8,0    3        1     0.000000000  2779  A   R
5090384      8,0    3        2     0.000000404  2779  A   R
5090384      8,0    3        3     0.000001656  2779  Q   R
5090384      8,0    3        4     0.000010042  2779  G   R
5090384      8,0    3        5     0.000013714  2779  I   R
  8,0    3        0     0.000019067     0  m   N cfq2779SN / insert_request
  8,0    3        0     0.000021085     0  m   N cfq2779SN / add_to_rr
  8,0    3        0     0.000026848     0  m   N cfq2779SN / set_active wl_class:2 wl_type:1
  8,0    3        0     0.000029175     0  m   N cfq2779SN / fifo=          (null)
  8,0    3        0     0.000030077     0  m   N cfq2779SN / dispatch_insert

Quando houver setores a serem relatados, eles aparecerão como números sem vírgulas, ou seja, 4064336. Assim, você pode confirmar, em teoria, que os números do setor estão em série ou aleatórios.

A parte difícil será identificar qual aplicativo causou quais eventos de E / S no nível inferior. Para resolver isso, você pode usar a ferramenta, fatrace que eu detalhei neste apêndice e nas perguntas e respostas intitulado: Determinando o arquivo específico responsável pela alta E / S .

Referências

por 01.09.2014 / 07:12