我在 Amazon EC2 服务器中创建了 14GB 交换文件,但我创建的交换文件未被服务器使用。状态显示如下:
$ free -m
total used free shared buffers cached
Mem: 7687 7650 36 0 255 3834
-/+ buffers/cache: 3560 4126
Swap: 14335 0 14335
这些是我在服务器上创建交换文件的步骤:
# dd if=/dev/zero of=/swapfile1 bs=1M count=14336
# mkswap /swapfile1
# swapon /swapfile1
有人能告诉我为什么交换文件没有被使用吗?
答案1
它已被激活,因为您有 14G 的可用交换空间,但由于您有 4G 的可用 RAM (*),所以它没有必要,并且如果有可用的 RAM,Linux 就不会使用速度慢得多的交换空间。
(*) 您是否认为 RAM 已全部用完:其实不然,它只是用作缓存,如果需要可以立即使用。查找有关此内容的更多信息这里。
答案2
不使用是因为没有必要。实际上这是一个相当不寻常的问题,因为管理员通常倾向于避免使用交换空间 :) 如果您希望系统更积极地使用交换空间,您可以调整一些旋钮。其中之一是vm.swappiness
,尝试将其设置为最大值:sudo sysctl -w vm.swappiness=100
。
答案3
据我所知,并非所有实例类型都启用了交换。
请查看此链接以了解更多信息:http://tech.backtype.com/swap-space-on-ec2