为什么在内存还有足够的情况下就开始交换?

为什么在内存还有足够的情况下就开始交换?
$ free -h
              total        used        free      shared  buff/cache   available
Mem:           125G         16G        105G         26M        3.3G        107G
Swap:          8.0G        1.9G        6.1G

我正在运行一个程序来处理一个大文件,这就是我看到的情况。我不明白为什么在还有 105G 可用的情况下它开始大量交换。

我的系统是Centos7

答案1

它的行为如此,是因为其编程如此。降低 VM.swappiness(至 10 或更低)将使用更少的交换空间。

操作系统认为将内容从内存移到磁盘以释放 RAM 来存放重要内容是个好主意(内存中的某些内容实际上从未使用过)。您的系统认为此文件需要保存在 RAM 中,但不太可能使用,因此会将其交换出去。这不一定是个问题。

相关内容