0

我正在尝试计算.Text从内存中分页的次数百分比。

AFAIK,假设我们有大量内存,这并不常见。

如果你能分享一些关于它的数据?

系统调用可能mlockall会有所帮助(尽管我的经验表明并非如此)?

4

1 回答 1

1

分页算法基于许多参数,并且是特定于操作系统的。例如,在 Linux 中,有一个名为 swapiness 的参数会影响这一点。

通常,页面会在最近最少使用的基础上从 RAM 中删除。如果您没有配置交换空间,则 .text 页面更有可能从 RAM 中删除,因为数据页面很可能是脏的并且不可能(因为没有地方可以写入它们)。

如果您想尝试对此进行分析,可以尝试如下实验:

将您的程序放在一个磁盘上,将您的数据放在另一个磁盘上。在任何情况下都不要在第一张磁盘上放除代码以外的任何东西。现在,在有问题的负载下运行您的系统。

继续使用类似 sar 的实用程序来收集磁盘上的 IO 数据。如果您只加载一次程序,那么随着时间的推移,第一个磁盘上的 IO 应该非常接近针对文本页面完成的分页量。

将其与另一个磁盘上的数据 IO 进行比较,您就有了一个大概的答案。当然,您的数字会根据您的负载和内核参数而有很大差异。

于 2012-11-12T20:08:45.370 回答