
Estoy ejecutando una aplicación que utiliza un archivo mapeado de memoria enorme en dos máquinas diferentes (CentOS 7).
Descubrí que el rendimiento del mismo programa es significativamente diferente cuando se ejecuta en dos máquinas diferentes.
La razón fue que una máquina utiliza una cantidad excesiva de E/S de disco, ya que la mayoría de las páginas se intercambian en discos.
Cuando ejecuto top
el comando, el tamaño de la región de memoria compartida es de unos pocos megabytes en la máquina lenta. En la máquina más rápida, el tamaño de la región de memoria compartida es de aproximadamente 6 GB, lo que significa que la mayoría de los datos se almacenan en la caché de la página del sistema operativo.
Verifiqué que haya suficiente espacio de memoria libre (más de 16 GB), suficiente para almacenar en caché todo el archivo asignado en memoria.
¿Alguien puede darme una idea sobre este tema?