如果我有足够的RAM,会发生内存分页吗?

时间:2012-11-01 14:45:05

标签: c++ memory paging

我正在编写一个高性能的服务器应用程序(在Linux上),我正试图获得快速的关键路径。我担心内存分页并在操作期间将内存交换到磁盘(延迟时间为毫秒级)。

我的问题是,如果我在服务器上有大量内存(比如16GB),我的内存利用率保持在6-10GB左右,我知道同一个盒子上没有其他进程。我可以保证在应用程序启动和加热后没有页面错过吗?

1 个答案:

答案 0 :(得分:1)

这不保证。 Linux的默认行为是有时使用RAM来缓存文件,这可以提高某些工作流的性能。这意味着即使没有全部使用内存,有时候内存页也会被换掉。

您可以使用mlock / mlockall将进程的页面锁定在内存中。有关详细信息,请参阅man 2 mlock