我正在两台不同的机器(CentOS 7)上运行一个使用巨大内存映射文件的应用程序。
我发现同一个程序在两台不同的机器上运行时,性能有显着差异。
原因是一台机器使用了过多的磁盘 I/O,因为大部分页面都换出到磁盘。
当我运行 top
命令时,共享内存区域的大小在慢速计算机上大约只有几兆字节。在速度更快的机器上,共享内存区域的大小约为 6GB,这意味着大部分数据都缓存在操作系统页面缓存上。
我检查了是否有足够的(超过 16GB)可用内存空间,足以缓存整个内存映射文件。
任何人都可以给我关于这个问题的想法吗?