solaris和linux pagecache行为之间的区别

时间:2018-08-28 12:05:48

标签: linux unix memory-management linux-kernel solaris

我观察到Linux和Solaris页面缓存的行为存在以下差异。

1。当我们在solaris平台上执行缓冲写操作时-pagecache(缓冲写操作)使用了空闲内存,并且如果其他应用程序没有内存需求,它将消耗几乎所有可用内存。

上述场景的再现
操作系统/平台:Solaris 11(5.11)
总物理内存:116GB
文件系统:ZFS。
步骤

-bash-4.4# mkfile 110g file //this will create 'file' filled with 0s size = 110g  

如果我使用“ top”检查可用内存,它将开始减少并达到几乎几个KB。
echo "::memstat" | mdb -k中,我看到“ pagecache”列占用了大部分内存。

根据OS设计,以上行为似乎是正常的。因为:
1)当时没有其他应用程序的内存需求。
2)由于页面缓存中存在数据,因此对文件的后续读取将更快。

如果我生成一个需要内存的应用程序(>而不是当前的可用内存),则可以通过从页面缓存(刷新到磁盘的页面)中窃取页面来满足请求。

我的问题是-为什么在Linux上未观察到此行为,我在Linux上尝试了上述Scenerio(其他配置相同)。我没有看到空闲内存大量消耗。 Linux的页面缓存与Sol的页面缓存有何不同?

0 个答案:

没有答案