Linux 系统的最佳 Swappiness

Linux 系统的最佳 Swappiness

我有一台 64 位 Linux PC,配备 4 GB RAM。

我如何才能找到交换性(/proc/sys/vm/swappiness)需要设置吗?默认值是 60,我认为它并不适合所有人。

我正在寻找一个可能利用命令输出的答案免费, 顶部, psETC

如果需要,我随时可以提供更多系统信息

可以找到一些有关 swappiness 的信息这里

答案1

这是 SuperUser,所以我假设这是一个桌面系统。对于服务器系统,答案可能完全不同。

对于桌面系统,高交换率(例如 60)对交互性非常不利,即当您经常运行超过 50% 的 RAM 使用率时(例如在编辑大型或许多文件(照片、视频...)、进行 3D 工作、玩游戏...)。这里的关键点是,处理如此多数据的单个任务将快速而完美地运行,即使在高交换率下也是如此,因为 Linux 会看到内存正在使用中并且不会将其交换出去。

但是,一旦有其他任务开始执行,这种方法就不再有效。例如,如果您正在处理 3D 场景,然后切换到文件管理器或邮件客户端,则很可能这些已被替换,并且需要几秒钟才能替换它们(并且可能之前已经替换了其他内容)。在此期间,应用程序完全没有响应。这可能会在日常桌面工作中造成令人沮丧和减慢的用户体验。

因此,当单个任务经常使用大量内存,并且仍需要使用其他任务时,降低交换量是明智的。但是,如果像桌面系统上常见的情况一样,另一个用例是几个任务只使用少量内存,总内存使用量较低(例如,低于 50%),该怎么办?在这种情况下,较低的交换量也不会造成任何损害,因为有大量可用 RAM,即使交换量较高,交换也不会启动。

当有大量任务消耗大量内存时,你的处境就会很糟糕,因为交换将要发生。在这种情况下,您必须做出权衡:您需要文件系统响应能力(高交换性,因为即使在内存压力期间也会为文件系统缓存分配更多空间)还是任务响应能力(低交换性,为任务占用尽可能多的内存)。

答案2

保留其预定义值。之所以设置为此值,是因为它适用于大多数工作负载。

所以你的问题实际上应该包括计划的工作量。因为这就是交换的意义所在 ;-)。

相关内容