我正在编写一个高性能的服务器应用程序(在Linux上),并且我试图获得一个快速的关键路径。我关心的是内存分页和在操作期间将内存交换到磁盘(延迟为毫秒级)。
我的问题是,如果我在服务器上有很多内存(比如16 no ),而我的内存利用率保持在6-10 no左右,并且我知道同一机器上没有其他进程。是否可以保证在应用程序启动和预热后不会发生页面丢失?
发布于 2012-11-01 22:52:19
这是不能保证的。Linux的默认行为是有时使用RAM缓存文件,这可以提高某些工作流的性能。这意味着有时内存页面会被换出,即使内存并未全部用完。
您可以使用mlock/mlockall在内存中锁定进程的页面。有关详细信息,请参阅man 2 mlock。
https://stackoverflow.com/questions/13179495
复制相似问题