Linux 中不必要的交换

Rya*_*Fox 5 linux swap

似乎有时,我的计算机会开始不必要地交换(内存使用率约为 25%),我不知道为什么。

运行 Perl 脚本时似乎最常发生这种情况,但这些不是密集型脚本,而且我找不到任何说 Perl 只能看到一定数量内存的说法。脚本完成后,swap 使用仍然存在,甚至在关闭 Firefox、Banshee 等之后。重新启动 X 有时可以解决问题,但有时需要完全重新启动。

这对我来说变成了一个大问题,因为一旦任何东西开始交换,其他一切似乎也一样。关闭程序或切换视点等基本操作需要的时间越来越长。如果不加检查,这种交换使用最终将迫使我的计算机无限期地颠簸,甚至无法响应击键!

我正在运行 Ubuntu 9.04、2.6.28-15 内核,我有 4GB 的 RAM,并且通常使用率约为 25%。

我也试过降低“swappiness”,但没有运气。

小智 3

我的建议是将你的 swappiness 设置为 0。

将 swappiness 设置为“较低的数字”可能会降低使用 swap 的“频率”,但将其设置为 0 将强制内核采用不同的代码路径,强制所有内存分配在使用 swap 之前首先用完所有可用内存和缓存空间。

您可以通过发出以下命令将 swappiness 设置为零:

echo 0 > /proc/sys/vm/swappiness