Eu acho que algo baseado em lsof
pode funcionar, mas eu realmente não o usei.
Há vários scripts de exemplo aqui: link Isso pode dar pistas sobre como fazer o que você quer.
Estou tentando encontrar um programa que monitore ativamente quantos dados são lidos e gravados por segundo para abrir arquivos e, em seguida, classificar os arquivos com o maior uso no topo. Isso seria semelhante a iotop
, mas em uma base por arquivo, em vez de por thread ou por processo. Também seria idêntico ao separador Disco no Monitor de Recursos do Windows 7. Alguma sugestão? Obrigado
Eu acho que algo baseado em lsof
pode funcionar, mas eu realmente não o usei.
Há vários scripts de exemplo aqui: link Isso pode dar pistas sobre como fazer o que você quer.
Hmm, bruto:)
O mais próximo que encontrei é o módulo stap que fez io stats no base de nível de processo.
OBSERVAÇÃO: O Systemtap pode alterar seus componentes internos do kernel em tempo de execução, USE POR SUA PRÓPRIA CONTA E RISCO! link
Este script:
Usa vfs_read / write para obter uma IO bruta executada em nome de processo X. Você notará que vfs_read toma struct file como um argumento de modo que você estava inclinado a determinar o real alça de arquivo, você poderia monitorar o io naquele ponto de entrada.
Eu não tenho um método para determinar isso em cima do meu cabeça e honestamente é algum trabalho para acertar. Que sobrou como um exercício para o OP. Você pode querer verificar Linux "perf", pode haver um método pronto lá.
Ou talvez você queira reconsiderar toda a sua abordagem.