我使用 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 不足,或者程序员为了让程序格外小心而让程序使用交换(即使在最后一种情况下也会使程序变慢)。