В настоящее время я запускаю экземпляр ec2 micro, и я обнаружил, что у экземпляра иногда заканчивается память.
Помимо использования большего размера экземпляра, что еще можно сделать?
В настоящее время я запускаю экземпляр ec2 micro, и я обнаружил, что у экземпляра иногда заканчивается память.
Помимо использования большего размера экземпляра, что еще можно сделать?
Исправление этой проблемы состоит в том, чтобы добавить к экземпляру пробел swap
или paging
.
Пейджинг работает, создавая область на вашем жестком диске и используя ее для дополнительной памяти, эта память намного медленнее, чем обычная память, однако гораздо больше доступно.
Чтобы добавить это дополнительное пространство к вашему экземпляру, введите:
sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
sudo /sbin/mkswap /var/swap.1
sudo chmod 600 /var/swap.1
sudo /sbin/swapon /var/swap.1
Если вам нужно больше 1024, измените это на что-то более высокое.
Чтобы включить его по умолчанию после перезагрузки, добавьте эту строку в /etc/fstab:
/var/swap.1 swap swap defaults 0 0
Обмен должен происходить на диске хранения экземпляров (ephemeral), а не на устройстве EBS. Подкачка приведет к большому количеству ввода-вывода и увеличит стоимость EBS. EBS также медленнее, чем магазин экземпляров, а магазин экземпляров поставляется с некоторыми типами экземпляров EC2.
Обычно он монтируется в /mnt, но если не выполняется
sudo mount /dev/xvda2 /mnt
Чтобы затем создать файл подкачки на этом устройстве, выполните следующие действия для своп файла объемом 4 ГБ
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
После применения шагов, упомянутых ajtrichards, вы можете проверить, использует ли ваш экземпляр свободного уровня amazon использование swap с помощью этой команды
cat /proc/meminfo
результат:
[email protected]:/$ cat /proc/meminfo
MemTotal: 604340 kB
MemFree: 8524 kB
Buffers: 3380 kB
Cached: 398316 kB
SwapCached: 0 kB
Active: 165476 kB
Inactive: 384556 kB
Active(anon): 141344 kB
Inactive(anon): 7248 kB
Active(file): 24132 kB
Inactive(file): 377308 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 1048572 kB
SwapFree: 1048572 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 148368 kB
Mapped: 14304 kB
Shmem: 256 kB
Slab: 26392 kB
SReclaimable: 18648 kB
SUnreclaim: 7744 kB
KernelStack: 736 kB
PageTables: 5060 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1350740 kB
Committed_AS: 623908 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 7420 kB
VmallocChunk: 34359728748 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 637952 kB
DirectMap2M: 0 kB
Вы можете добавить своп 1 ГБ к вашему экземпляру с помощью следующих команд:
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
Если вы находитесь в t2
экземплярах (t2.micro
, t2.medium
, t2.small
), для вас нет эфемерного или хранилища экземпляров. Поэтому вам нужно просто создать свой своп в EBS
, который в зависимости от вашего варианта использования может или не может быть хорошей идеей.
В противном случае выполните ответ @David и создайте свой своп на эфемерном хранилище, чтобы избежать оплаты расходов EBS.
Дополнительная информация: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html есть таблица, которая показывает, сколько эфемерного хранилища вы получаете для каждого типа экземпляра.
Вы можете создать пространство подкачки, выполнив следующие шаги
Здесь мы создаем swap в /home/
dd if=/dev/zero of=/home/swapfile1 bs=1024 count=8388608
Здесь count - килобайтовый счет пространства подкачки
mkswap /home/swapfile1
vi /etc/fstab
сделать запись: /home/swapfile1 swap swap defaults 0 0
бежать: swapon -a
Попробуйте swapspace http://pqxx.org/development/swapspace/
В большинстве дистрибутивов он упакован.
В EC2 вы можете изменить "swappath" на диск /mnt или high-iops.