Eu tenho um aplicativo que usa vários arquivos mapeados na memória. Se eu verificar os números das principais falhas de página (com /proc/<pid>/stat
), eles disparam.
Eu queria saber se é possível monitorar de alguma forma quais arquivos mapeados em memória são afetados pelas entradas e saídas de troca de página para um processo?
Pelo menos eu gostaria de ver quais arquivos mmap-ed são acessados para um processo. Tentei com strace, mas não encontrei leituras, porque acho que nenhuma chamada de sistema é necessária para o acesso direto à memória.
Eu ficaria feliz também em saber o endereço virtual no espaço do processo onde eles acontecem, então pelo menos eu poderia mapeá-los manualmente para os arquivos na saída do pmap
http://man7.org/linux/man-pages/man1/perf-trace.1.html
Para se conectar a um processo existente, use
-p $PID
. Se você não quiser mostrar as chamadas do sistema, passe--no-syscalls
também. Os argumentos de chamada do sistema não serão mostrados com o mesmo nível de detalhes questrace
.