
Estou executando um aplicativo que usa um enorme arquivo mapeado de memória em duas máquinas diferentes (CentOS 7).
Descobri que o desempenho do mesmo programa é significativamente diferente quando executado em duas máquinas diferentes.
O motivo foi que uma máquina usa uma quantidade excessiva de E/S de disco, já que a maioria das páginas é trocada por discos.
Quando executo top
o comando, o tamanho da região de memória compartilhada é de apenas alguns megabytes na máquina lenta. Na máquina mais rápida, o tamanho da região de memória compartilhada é de cerca de 6 GB, o que significa que a maioria dos dados são armazenados em cache no cache de páginas do sistema operacional.
Verifiquei se há espaço de memória livre suficiente (mais de 16 GB), suficiente para armazenar em cache todo o arquivo mapeado na memória.
Alguém pode me dar uma ideia sobre esse assunto?