Linux 中的交换隐含及其增加方法

Linux 中的交换隐含及其增加方法

我使用 top 命令在 Linux 机器上打印此内容:

[root@localhost ~]# top
top - 23:38:38 up 361 days, 12:16,  2 users,  load average: 0.09, 0.06, 0.01
Tasks: 129 total,   2 running, 126 sleeping,   1 stopped,   0 zombie
Cpu(s):  0.0% us,  0.2% sy,  0.0% ni, 96.5% id,  3.4% wa,  0.0% hi,  0.0% si
Mem:   2074712k total,  1996948k used,    77764k free,    16632k buffers
Swap:  1052248k total,  1052248k used, 0k free,   331540k cached

我不知道交换:0k 最后一行是 free 的意思。Linux 机器的值为 0 是正常现象吗?

谢谢

答案1

Linux 将其物理 RAM(随机存取存储器)划分为称为页面的内存块。交换是将内存页面复制到硬盘上预配置的空间(称为交换空间)以释放该内存页面的过程。物理内存和交换空间的总大小就是可用的虚拟内存量。

如果你真的想要超过 1gb(这是很多),那么您可以使用命令创建一个文件dd并让 Linux 使用该文件进行交换(通常使用一个分区进行交换)。

这将创建一个 2gb 的交换文件并激活它:

dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

然后将其放入 /etc/fstab:

/swapfile none swap defaults 0 0

答案2

交换与 Windows 中的“虚拟内存/页面文件”相同。如果可能的话,交换应该放在 RAM 中,但必须放在磁盘上,因为 RAM 不足,或者程序员为了让程序格外小心而让程序使用交换(即使在最后一种情况下也会使程序变慢)。

相关内容