Eu posso fazer isso usando a função mincore ()
Eu tenho dois processos que se executam de forma diferente em duas caixas que são idênticas, exceto pela quantidade de memória RAM. Uma caixa tem 32GB e a outra tem 16GB e o processo tem um desempenho significativamente melhor na primeira. O processo em si não usa muita memória, mas lê muitos arquivos grandes. Eu suspeito que ele se encaixa melhor na caixa de 32GB porque o linux é capaz de armazenar em cache mais arquivos devido à memória extra. No entanto, não sei como provar isso. Como posso saber se os arquivos estão sendo lidos do cache versus do disco? É claro que posso simplesmente agendar as leituras e ver se elas estão com um melhor desempenho, mas quero ver por que elas estão se saindo melhor.
Use iostat
ou sar
para examinar as estatísticas de E / S do disco nos sistemas em execução. Assumindo um volume equivalente de solicitações de E / S, a máquina que estiver fazendo mais cache mostrará uma taxa de E / S mais baixa.