0

我可能在做一些愚蠢的事情,但我需要 100 GB 的空间。我在启动时使用内存映射文件分配它们,它几乎立即发生。因为我只有 32 GB 的物理内存,所以我重新安排了程序,使它与 20 GB 的块一起工作,并且只有在做了很多工作后才切换到另一个块。我在-mx24GLinux 机器上开始这个过程。

发生的事情是它永远不会接近第一个块的末尾。CPU大多空闲,HD一直很忙。该过程永远不会超过 6 GB,这解释了为什么它无法取得任何进展(局部性非常糟糕,几乎每次内存访问都是页面错误)。

但是为什么这个过程不占用更多的真实内存呢?仍然有 15 GB 的可用空间,并且可以轻松交换相当多的进程。


这些文件是在流程开始时创建的,因此是空的。看起来这个过程确实是不必要地获取空页面。所以我预先进行了顺序扫描,现在我的进程很快就得到了 20 GB。但仅此而已...

CPU 仍然处于空闲状态,就好像每次内存访问都是直写到磁盘一样。这是怎么回事?

4

0 回答 0