我目前正在运行一个ec2微实例,我发现实例偶尔会内存不足。
除了使用更大的实例大小,还可以做什么?
我目前正在运行一个ec2微实例,我发现实例偶尔会内存不足。
除了使用更大的实例大小,还可以做什么?
当前回答
你可以用下面的命令给你的实例添加一个1gb的交换空间:
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
sudo mkswap /swapfile
sudo swapon /swapfile
为了在重启后默认启用它,将这一行添加到/etc/fstab:
/swapfile swap swap defaults 0 0
其他回答
您可以使用以下脚本在Amazon Linux上添加交换。
https://github.com/chetankapoor/swap
使用wget下载脚本:
wget https://raw.githubusercontent.com/chetankapoor/swap/master/swap.sh -O swap.sh
然后按照如下格式运行脚本:
sh swap.sh 2G
要获得完整的教程,您可以访问:
https://installvirtual.com/shell-script-to-create-swap/
我们可以在任何服务器中添加交换空间
使用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
您可以通过以下步骤创建交换空间 这里我们在/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 (
交换应该发生在实例存储(临时)磁盘上,而不是EBS设备上。交换将导致大量的IO,并将增加EBS的成本。EBS也比实例存储慢,并且实例存储附带某些类型的EC2实例。
它通常会挂载到/mnt,但如果不运行
sudo mount /dev/xvda2 /mnt
要在此设备上创建交换文件,请对4GB交换文件执行以下操作
sudo dd if=/dev/zero of=/mnt/swapfile bs=1M count=4096
确保没有其他用户可以查看交换文件
sudo chown root:root /mnt/swapfile
sudo chmod 600 /mnt/swapfile
使和标记为交换
sudo mkswap /mnt/swapfile
sudo swapon /mnt/swapfile
在/etc/fstab中添加/确保以下文件
/dev/xvda2 /mnt auto defaults,nobootwait,comment=cloudconfig 0 2
/mnt/swapfile swap swap defaults 0 0
最后启用swap
sudo swapon -a
使用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