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 está sendo executado em duas máquinas diferentes.
O motivo foi que uma máquina usa quantidade excessiva de E / S de disco, já que a maioria das páginas é trocada por discos.
Quando executo o comando top
, 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 é armazenada em cache no cache de páginas do SO.
Verifiquei se há espaço suficiente (mais de 16 GB) de memória livre, o que é suficiente para armazenar em cache todo o arquivo mapeado na memória.
Alguém pode me dar uma idéia sobre essa questão?
Tags shared-memory mmap