![Ubuntu Swappiness 默认混乱](https://linux22.com/image/931536/Ubuntu%20Swappiness%20%E9%BB%98%E8%AE%A4%E6%B7%B7%E4%B9%B1.png)
我有一个关于 swappiness 的问题,我完全不明白。我发现我的工作站在 VMware Internet 下载期间经常交换。VMWare 社区中的某个人建议我更改我的 swappiness。swappiness 默认为 60,我很难理解为什么选择这个默认值。我读到 swappiness 为 60 适合作为服务器运行的 Ubuntu。我在这个页面上读到:https://help.ubuntu.com/community/SwapFaq/#What_is_swappiness_and_how_do_I_change_it.3F
如果 60 对服务器来说已经足够了,那么为什么要将桌面安装的 swappiness 设置为默认值 60?上面的页面甚至建议将 swappiness 值设置为 10 而不是 60。为什么不直接将默认值设为 10?当我将 swappiness 更改为 10 时,我注意到的性能问题就消失了。Swap 根本没有像设置为 60 时那样被使用,而且我在执行典型任务时从未耗尽内存。这让 Ubuntu 新用户非常困惑,老实说,这个默认值对我来说毫无意义。
编辑:
显示以下免费输出:
$ free -h
total used free shared buff/cache available
Mem: 125Gi 7.1Gi 46Gi 24Gi 72Gi 93Gi
Swap: 488Gi 0B 488Gi
仅在运行 VMware 时才会出现交换空间使用过多的问题。老实说,我认为这是与磁盘使用相关的 VMware 内存泄漏。磁盘使用期间交换空间不停增长对我来说毫无逻辑可言。
$ sudo dmidecode -s bios-version
A17
这是最新的可用 BIOS。
答案1
简短的回答...
terminal
您可以使用和查看当前设置sysctl vm.swappiness
。您可以使用 观察内存和交换区的使用情况free -h
。
最简单的解释是,vm.swappiness 设置内存活动与交换活动的比率。交换是指交换分区或 /swapfile 的使用。所有计算机都需要交换。交换的大小因系统配置和使用情况而异。
vm.swappiness 值接近 10 时,交换次数会减少,内存活动会增多。这可用于高内存环境,或交换延迟会对性能产生负面影响的环境,例如 Ubuntu Server 环境。
vm.swappiness 值接近 80/90 会进行更多交换,减少内存活动。这可用于低内存环境,这种环境中希望更多地依赖交换。通常,增加更多内存是更好的长期解决方案。
Ubuntu 桌面安装的默认 vm.swappiness 值为 60。这对于典型的用户和配置来说达到了良好的平衡。