我试图提出.Text
从内存中分页的百分比。
AFAIK,假设我们有大量内存,这并不常见。
如果您可以分享一些有关它的数据?
可能是mlockall
系统调用有帮助(虽然我的经验表明否则)?
答案 0 :(得分:1)
分页算法基于众多参数,并且是特定于操作系统的。例如,在Linux中,有一个名为swapiness的参数会影响它。
通常,页面会在最近最少使用的基础上从RAM中删除。如果您没有配置交换空间,则.text页面更有可能从RAM中删除,因为数据页可能很脏并且不可能(因为无处可写)。
如果您想尝试分析此问题,可以尝试按如下方式进行实验:
将程序放在一个磁盘上,将数据放在另一个磁盘上。在任何情况下,都不要在第一个磁盘上放置任何代码。现在,在有问题的负载下运行您的系统。
在继续操作时,使用sar等实用程序在磁盘上收集IO数据。如果您只加载一次程序,那么第一个磁盘上的IO随着时间的推移应该非常接近于相对于文本页面的分页量。
将其与其他磁盘上的数据IO进行比较,您就得到了一个近似的答案。当然,根据您的负载和内核参数,您的数字会有很大差异。