在 Centos 5.4 上,太多内存被换出,而缓存却使用了所有内存

在 Centos 5.4 上,太多内存被换出,而缓存却使用了所有内存

我已经将数据库服务器上的 swappiness 设置为零,但在进行大型排序操作时,即使缓存仍在使用大量内存,使用的交换空间也会增加,然后缓存会增长,但交换空间保持不变。这对我来说毫无意义。free -m目前情况如下:

             total       used       free     shared    buffers     cached
Mem:         16000      15979         20          0         24      10520
-/+ buffers/cache:       5434      10565
Swap:         6111       5478        633

这发生在 PostgreSQL 的大型排序过程中。问题是,排序一结束,交换出的内存就可能被调用(这是UPDATE我放入 tmpfs 的表中的一大块内存),这会导致速度大幅下降,因为它是随机访问。

答案1

您在 tmpfs 中使用了多少空间?

请记住,tmpfs 由缓存支持,并显示在该统计信息中。因此,“忽略缓存并使用 +/- 行”的常规建议不一定适用。

事实上,tmpfs 是可交换的,因此很有可能那是随着实际内存压力的增加,哪些内容会被换出。

相关内容