Como obter todas as atividades do disco disparadas pelos sistemas de arquivos no linux?

0

Eu quero gravar as atividades de acesso ao disco chamadas pelo sistema operacional. Esses dados que eu quero gravar são recebidos pelo disco do sistema operacional, incluindo o número do setor do disco, a duração da solicitação, a hora de chegada, a leitura ou a gravação.

Para ser específico, o sistema operacional é linux com kernel 3.xxx, o sistema de arquivos em disco é ext4. Talvez eu precise modificar o driver ext4 para registrar essas atividades de acesso ao disco.

O sistema operacional é o Ubuntu 15.04 de 32 bits no Intel i686. Eu estou fazendo uma pesquisa e quero obter os vestígios de I / O dos desktops.

    
por river 05.07.2015 / 08:09

3 respostas

2

Não tenho certeza se você pode obter todas essas informações do driver ext4 , porque ele não é responsável pelos setores de disco e outras geometrias de disco, mas sim pelo sub-sistema de camada de dispositivo de bloco no kernel do Linux. Eu não vejo uma maneira de obter todas as informações em que você é interessante, porque, como eu vejo, você está interessando como em coisas de baixo nível e também em alto nível como operações de r / w, mas olhe no blktrace util.

    
por 05.07.2015 / 08:56
1

Sua pergunta não está clara. Se você quiser criar perfis de E / S de disco bruto (o sistema de arquivos é irrelevante e também deseja medir o IO do disco de troca), talvez seja necessário configurar ou corrigir o kernel (não sei como). Talvez a execução do Linux através de um hipervisor (como xen ) possa ajudar. Veja também em oprofile

Por outro lado, se você estiver interessado na atividade do sistema de arquivos, poderá usar inotify ( 7) . Observe que, graças ao cache da página , a atividade do sistema de arquivos não é igual à atividade bruta do disco.

    
por 05.07.2015 / 08:49
1

Você precisa do rastreamento no nível do kernel para conseguir isso.

Há um grande número de ferramentas disponíveis para isso, com vários níveis de recursos, usabilidade e estabilidade, incluindo sysdig , < href="https://lwn.net/Articles/608497/"> ftrace , perf , dtrace4linux , ktap , systemtap e outros.

Você pode começar com tpoint que, sendo baseado em ftrace , deve ser não precisa de nada para ser instalado (fora do próprio script), por exemplo:

# tpoint -H ext4:ext4_da_write_end

Para ir mais longe, sugiro investigar com systemtap .

    
por 05.07.2015 / 11:51