我目前正在运行一个ec2微实例,我发现实例偶尔会内存不足。

除了使用更大的实例大小,还可以做什么?


当前回答

您可以通过以下步骤创建交换空间 这里我们在/home/下创建swap

Dd if=/dev/zero of=/home/swapfile1 bs=1024 count=8388608 这里的count是交换空间的千字节计数 mkswap /home/swapfile1 vi挂载 进入: /home/swapfile1 swap swap默认值0 0 运行: swapon (

其他回答

您可以通过以下步骤创建交换空间 这里我们在/home/下创建swap

Dd if=/dev/zero of=/home/swapfile1 bs=1024 count=8388608 这里的count是交换空间的千字节计数 mkswap /home/swapfile1 vi挂载 进入: /home/swapfile1 swap swap默认值0 0 运行: swapon (

如果你在t2个实例上(t2。微,t2。Medium, t2.small),没有可用的临时存储或实例存储。因此,您只需要在EBS中创建交换,这取决于您的用例,可能是一个好主意,也可能不是。 否则,请遵循@David的回答,并在临时存储上创建交换,以避免支付EBS成本。

更多信息:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html有一个表,显示了每个实例类型有多少临时存储。

试试swapspace http://pqxx.org/development/swapspace/

大多数发行版都打包了它。

在EC2上,您可能希望将“swappath”更改为/mnt或高iops磁盘。

使用David的实例存储答案最初对我有效(在m5d.2xlarge上),但是,在停止EC2实例并重新打开它之后,我无法再次ssh进入该实例。

实例日志报告:“您处于紧急模式。登录后,可输入“journalctl -xb”查看系统日志,输入“systemctl reboot”重启系统,输入“systemctl default”或“exit”引导进入默认模式。按Enter进行维护

相反,我遵循了此链接中的AWS指示,一切都工作得很好,包括在关闭实例后再次打开。

https://aws.amazon.com/premiumsupport/knowledge-center/ec2-memory-swap-file/

sudo dd if=/dev/zero of=/swapfile bs=1G count=4

Sudo chmod 600 /交换文件

sudo mkswap /swapfile

sudo swapon /swapfile

Sudo swapon -s

sudo vi /etc/fstab
/swapfile swap swap defaults 0 0

我们可以在任何服务器中添加交换空间

使用dd命令创建文件

 #dd if=/dev/zero of=/swapfile bs=1M count=2048
                    or
 #dd if=/dev/zero of=/swapfile bs=1024M count=2

bs为块大小,count为MB或GB大小

反之亦然

创建后修改文件权限:

 #chmod 600 /swapfile 

然后交换文件:

 #mkswap /swapfile 

然后使用swapon命令启用交换文件:

 #swapon  /swapfile 

使用free命令检查是否启用swap:

 #free -h
 #swapon -s