使用mmap时,如何限制锁定在内存中的数据量?

San*_*eep 6 mmap

在我的应用程序中,我mmap一个非常大的文件并随机访问位置.然而,在一定次数的访问之后,内存被完全使用并且程序开始抖动.

我试过madvise(fd, range, MADV_RANDOM)madvise(fd, range, MADV_DONT_NEED)为每次访问但这不起作用.我还试图setrlimit.RLIMIT_MEMLOCK限制RAM中锁定的内存量.