Как вы добавляете swap к экземпляру EC2?

В настоящее время я запускаю экземпляр ec2 micro, и я обнаружил, что у экземпляра иногда заканчивается память.

Помимо использования большего размера экземпляра, что еще можно сделать?

Ответ 1

Исправление этой проблемы состоит в том, чтобы добавить к экземпляру пробел 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

Ответ 2

Обмен должен происходить на диске хранения экземпляров (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

Ответ 3

После применения шагов, упомянутых 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

Ответ 4

Вы можете добавить своп 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

Ответ 5

Если вы находитесь в t2 экземплярах (t2.micro, t2.medium, t2.small), для вас нет эфемерного или хранилища экземпляров. Поэтому вам нужно просто создать свой своп в EBS, который в зависимости от вашего варианта использования может или не может быть хорошей идеей. В противном случае выполните ответ @David и создайте свой своп на эфемерном хранилище, чтобы избежать оплаты расходов EBS.

Дополнительная информация: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html есть таблица, которая показывает, сколько эфемерного хранилища вы получаете для каждого типа экземпляра.

Ответ 6

Вы можете создать пространство подкачки, выполнив следующие шаги Здесь мы создаем 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

Ответ 7

Попробуйте swapspace http://pqxx.org/development/swapspace/

В большинстве дистрибутивов он упакован.

В EC2 вы можете изменить "swappath" на диск /mnt или high-iops.