4GB RAM 的交换分区大小

4GB RAM 的交换分区大小

我打算安装 Ubuntu 9.04 版本。我应该为交换分区分配多少空间。我记得很久以前安装时将其设置为 RAM 大小的两倍。当时我的 RAM 是 256 MB。所以我将交换分区设置为 512 MB。

答案1

我想说一个好的经验法则确实正如上面提到的那样。2 倍的物理内存。这里要考虑的是,虽然可以使用较小的交换分区,并且在大多数正常情况下就足够了,但如果您希望此系统坚如磐石地稳定,我确实会遵循 8 GB 的建议。事实上,我建议使用 2 * RAM + 1 MB,这样就绝对有空间交换出 2 个完整的内存副本。这避免了可能产生负面性能影响的“骗局”场景。这将为您保证一定程度的弹性,以防您的系统遇到异常事件。

我曾经见过这样的情况:应用程序在无人值守的环境中表现不佳,在你意识到之前,你的系统就开始变得缓慢。

根据你正在做的事情,你甚至可以完全放弃交换文件。当同时运行许多应用程序时,操作系统的额外空间很方便。但是,如果你只打算运行几个进程,不打算与 GUI 交互,禁用交换文件可能是合适的。

但是如果您要使用交换文件,我总是使用下面的尺寸公式。

[(2 x  RAM) + 1 MB] = Swap File Size

我还建议尽可能将交换文件放在单独的磁盘上,因为这将提高性能,因为操作系统可以在从数据磁盘读取/写入的同时进行换入和换出。

我希望这是有帮助的。

答案2

如果您有足够的 RAM 来完成您要求它做的所有事情,Linux 可以在没有交换的情况下顺利运行,但是保留一些交换仍然是一个好主意,因为当接近填满内存时,通过将一些最近未使用的内容推送到磁盘,释放 RAM 以用作当前活动 IO 操作的缓存/缓冲区,有时可以获得更好的性能。

此外,无论您有多少 RAM,拥有一些交换空间确实可以提供一些额外的安全网,以防应用程序出现故障并需要比平时更多的 RAM,或者您选择做一些需要大量内存的不寻常的事情。

总体而言,我不同意在现代机器上使用 2xRAM。如果您有足够多的页面需要交换到磁盘,那么您的系统很可能会在那时达到完全无法使用的速度。在我看来,即使是 1xRAM 在许多情况下也可能是过度的。请记住,您可以随时以文件的形式添加交换空间,因此如果您发现需要,您可以稍后添加更多交换。例如,要添加额外的 GB 交换:

dd if=/dev/zero of=/path/to/newfile bs=1024 count=1048576
mkswap /path/to/newfile
swapon /path/to/newfile

并将其删除(不再需要时):

swapoff /path/to/newfile
rm /path/to/newfile

(但请记住,交换到文件比直接交换到分区或逻辑卷要慢一点,因为您需要考虑文件系统开销和更大的碎片可能性)

休眠,即在笔记本电脑/上网本上,可能会使事情稍微复杂一些,因为 IIRC Linux 将内存状态存储在交换空间中,所以如果您计划使用休眠模式,那么您肯定需要比 RAM 大小更多的交换空间(我不知道是否需要基于分区/卷的交换或是否可以使用基于文件的交换 - 它肯定需要在fstab启动过程的早期就提到一些东西,其中初始 RAM 磁盘正在使用中并且您的真实根目录尚未安装)。

不过,这些观点可能都毫无意义。如果你有数 TB 的磁盘存储空间,那么分配 8Gb 进行交换可能并不是什么难事!

答案3

根据 Ubuntu SwapFAQ这里计算结果为 2*MB RAM。因此,本例中为 8GB。但实际上,您不需要超过 2GB。

答案4

首先,如果您想使用休眠等功能,您将需要一个至少与您的 RAM 大小相同的交换分区。

其次,请记住 RAM 的大小是 2 的倍数,并且不是10 的倍数,因此声明 2 根 512MiB RAM (每根)的 1GB 空间536870912 bytes是不够的,因为这只有 1000MB(1000000000 字节),而不是1073741824 bytes所需的 1024MiB()...你需要拿一个计算器,然后做1024 * 1024 * 1024 * # of GiB

另请阅读:http://en.wikipedia.org/wiki/Binary_prefixman 8 units你的 Linux 机器上

因此,您的交换至少需要 4 GB 的 RAM4294967296 bytes4295 MB才能使用所有功能。

因为它很大,应该足以满足你的所有需求

相关内容