我有一台8G内存和128G SSD的电脑。我不打算冬眠。您建议使用多大的交换大小?你会改变任何交换吗?
在不久的将来我会编译程序(甚至内核),运行一些虚拟机(至少为系统留下5G可用空间),也许偶尔玩一些游戏。
答案1
您应该只需要 2 或 4 GB 的交换大小,或者根本没有交换大小(因为您不打算休眠)。
一个经常被引用的经验法则是,交换分区的大小应该是 RAM 的两倍。此规则对于旧系统来说很有意义,可以应对有限的 RAM 量。如今,除非负载很重,否则您的系统根本不会交换。
这主要取决于您是否要对计算机进行内存密集型使用;如果是这种情况,您可能需要增加 RAM 量。
请注意,SSD 比硬盘更容易磨损,并且受到重写周期次数的限制。这使得托管交换分区不是最佳选择。
编辑:另请参阅这个问题:Linux、SSD 和交换
答案2
假设我们没有重新哈希交换是不合时宜的吗?对话/辩论,我建议你看一下archlinux wiki 关于该主题的内容。一如既往,它对于任何发行版来说都是一个很好的资源,涵盖了 SSD 的基础知识以及建议的性能调整。
tldr;根据 arch wiki:
通常建议 RAM 小于 1 GB 的用户使用交换空间,但在具有大量物理 RAM 的系统上则更多地取决于个人偏好(尽管它是挂起到磁盘支持所必需的)。
答案3
在桌面上拥有 8GB RAM 相当容易,并且交换分区大小的旧经验规则将为您提供大量虚拟 RAM,但这确实取决于您运行的软件。
因此,请检查您的计算机正在做什么。有图形程序,例如任务管理器和命令行程序,例如free -h
(我使用这种形式的命令,因为它对人类来说更容易)。
有些程序在 4GB RAM 中表现不佳。这不仅仅是特定的程序,还必须有很多操作系统代码,当你达到 8GB 时,你可能会对正在运行的内容有点粗心。如果不需要交换,请使用 RAM。
我注意到 4GB 的挣扎坎巴拉太空计划和火风暴查看器第二人生。还有其他选择火风暴不需要那么多内存。相同的任务,不同的要求,这就是为什么你必须衡量。
答案4
传统上,有很多关于根据 RAM 大小选择交换分区大小的内容,但我认为这总是有点无用。我不明白有什么意义——除了我将要谈到的休眠之外。这似乎是基于一些错误的观念,即您的 RAM 使用量随 RAM 大小而变化,并且由于某种原因,如果您增加 RAM,则需要交换更多内存。
考虑一下。如果你增加 RAM,你将不需要交换更多 - 从逻辑上讲,你应该需要较少的。或者至少,需要它的频率降低了。事实上,我们做了很多事情并且有很多进程一直在运行,并且仍然有意义一些令牌交换量,以保护我们的系统免受内存不足的情况并确保缓存运行良好。更多 RAM 总是比更多交换区更好,但即使您在正常情况下永远不会使用它,一些交换区仍然是一个很好的缓冲区。
我坚定的感觉是,2 到 4GB 的交换分区适合一般用途 - 无论您的 RAM 是 2GB 还是 64GB。
但是,如果您有特殊需求,即您的系统不适合“一般用途”,那么这可能会有其他含义,就像另一个关于专用 Oracle 数据库服务器的答案。
现在,关于冬眠。使用交换空间进行休眠并不是最好的主意,尽管我承认当磁盘很小并且 RAM 通常比交换空间小得多时,它更有意义。如果交换中有数据,然后休眠,则无论如何都需要休眠交换的数据和 RAM 中的数据,因此您需要相当大的空间 - 本质上,交换需要大约为当前 RAM 大小 + 您期望的最大数量驻留在交换中,但并非 RAM 中的所有内容都需要交换,例如磁盘缓存。
这些天我很高兴完全放弃冬眠。它比挂起到 RAM 慢得多,并且根据您的磁盘驱动器和 RAM 大小,现在通常也比冷启动慢。