当我启动 EC2 实例时,我注意到虚拟内存未启用。
$ free
total used free shared buffers cached
Mem: 1017260 344956 672304 60 141252 136976
-/+ buffers/cache: 66728 950532
Swap: 0 0 0
而在典型的 Linux 安装中,它会默认创建交换分区。为什么默认情况下 EC2 上不启用虚拟内存?还是我的 EC2 获得的内存已经是部分物理内存/部分交换内存?
答案1
我认为除非你需要,否则你不应该启用虚拟内存。对于大多数实例,你的 EBS 磁盘跨网络且相对较慢,因此如果你进行大量交换,它会减慢你的服务器速度。如果你有一个实例磁盘,机器内部有一个 SSD,那么它会非常快。
但是,如果您需要更多内存,并且它没有主动交换,那么一点虚拟内存可以帮助您在较小的 VM 上运行更多软件。我运行一个具有 512MB RAM 和 512MB 交换的 t2.nano,它运行良好。有了它,我可以毫无问题地运行 Nginx、PHP 5.6、MySQL 和一些实用程序。
我有一个关于如何向我的实例添加交换空间的教程这里。
这是我的服务器内存设置
[ec2-user@aws ~]$ free
total used free shared buffers cached
Mem: 500984 458016 42968 118864 13164 171068
-/+ buffers/cache: 273784 227200
Swap: 524284 141252 383032