没有交换分区的缺点


8

我最近在笔记本电脑上安装了Ubuntu 10.04。由于SSD的空间限制,我没有为操作系统设置交换分区,并且有1.5GB的RAM。

安装过程中会有警告,但是我认为这没什么大不了的,因为一切进展顺利。

从长远来看,没有交换分区会不会有任何弊端?


2
Gparted乐于为您的根驱动器创建几个演出,并且轻松而轻松地完成。
msw

Answers:


6

我想如果要给您一个问题的答案,我必须先在这里稍微解释一下整个交换文件。请原谅我的无聊。

类似于Windows中的页面文件,交换文件/交换分区是专用于促进更好地使用内存的硬盘空间。交换空间有两种用途。

  1. 如果所有应用程序都没有足够的内存(在没有交换空间的系统上发生这种情况),将导致无法为请求新内存页面的新应用程序分配内存-通常会导致程序终止。

  2. 当某些内存页(内存分为“页”)在前一段时间被使用,但现在不再使用时,它将在交换文件上传输,剩余的内存可用于做其他更有用的事情(例如,甚至是缓存!)-当这种情况发生在没有交换空间的系统中时,这将导致空闲页面保留在内存中。不过,这没什么太严重的,因为这些天我们的内存很大。

然后,现在我们列出了交换文件/交换分区的用途,通常可见多少?-这取决于机器的功能。如果是台式机,请将其设置为内存的1-1.5倍。如果是服务器计算机,请执行相同的操作,但是请注意交换使用,如果使用频繁,请升级内存。

正如其他人指出的那样,gparted可以帮助您从ext2 / ext3分区中分割出几千兆的空间,但是您也可以使用swapfile:

dd if=/dev/zero of=/swapfile bs=1024 count=1048576
mkswap /swapfile
swapon /swapfile

你应该有

swapfile none swap sw 0 0

fstab,以保证它被上每次重新启动使用

还有一件事:如果您不介意拥有交换空间,但想最大程度地减少使用空间,除非您的内存真的被拉长了,您可以通过更改/proc/sys/vm/swappiness(值,0-100;默认值, 60)。


除您已说明的内容外,交换还可以用于其他用途,例如用于自动存储故障转储文件的交换分区。同样,1-1.5倍的内存大小不是普遍接受的值。从理论上讲,具有更多内存的计算机将需要更少的内存来进行交换,因为它已用完X RAM,并且需要Y更多的RAM,因此它也许能够将这些额外的内存装入可用的RAM中,而不用交换。
TOOGAM 2015年

@TOOGAM是在2010年,当时人们在桌面上使用2-4GB的ram之类的东西。
bubu 2015年


3

如果内存不足,则程序可能会发生不可预测的行为。有时,内核会开始在随机位置丢弃内存。内核将开始删除低优先级进程。

虚拟内存不会给您带来大麻烦,尤其是如果虚拟内存将开始从杀死正在处理的优先级较低的重要文档中删除内存时尤其如此。


3
无论是否进行交换,都会发生这种情况。
伊格纳西奥·巴斯克斯

2
实际上,内核不会“开始在随机位置删除内存”。相反,它将做些必须做的事情,并开始终止被认为“不那么重要”的流程,直到情况好转为止。这是由“ OOM杀手”完成的。参见例如linux-mm.org/OOM_Killer
sleske 2010年

我站得住了。
Nitrodist 2010年

0

安装后,在运行占用大量内存的操作或仅打开“大型”应用程序(如Openoffice.org),解压缩文件等时,请检查您的内存使用情况。如果您看到使用的总内存接近1.5 GB,那么最好有一个交换分区或交换文件,以防万一您方便地运行使用大量内存的东西,而Ubuntu开始删除重要的内存,也许甚至是内核的一部分(不好,真的不好...)。


我很好奇,是否有可能使linux删除其内核的一部分以释放内存以供正在运行的进程使用?
伊戈尔·季诺夫

可能不是,但您知道我的意思吗
Hello71 2010年

AFAIK,Linux内核本身始终保留在内存中。它已作为引导顺序的第一部分加载并保持不变;内存永远不会被释放甚至被交换出去。但是,您可以加载和卸载模块,并且内存被释放(我相信),但是每个模块通常只有几十kb。内核还维护各种内部数据结构和缓冲区,它也许可以释放其中的一些(虽然不确定)。
sleske 2010年

0

这不是一个完整的答案,但是这里有一个故事确实在困扰着我,即使我以为我有一切可能受到控制的缺点:

/programming/4567972/error-executing-aapt-all-of-the-sudden 总而言之,某些从非常大的Java进程/应用程序运行的工具将无法始终运行。但是,大多数普通用户不会遇到这种情况。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.