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.
blktrace
pareceestarposicionadoparamostraressetipodedados.Aoolharparaapáginadomanualparablkparse
,mostraquevocêpodeincluironúmerosector
nasaída.
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 .