Вопрос: Почему изображения EC2 ubuntu не имеют обмена?


Я начал пару серверов на EC2, и у них нет свопа.

Я что-то делаю неправильно, или что у машин просто нет?


73
2018-01-04 21:53


Источник


Я тоже задавался вопросом, но я просто создал экземпляр EBS, отформатировал его как своп, и swapon / dev / sdg ... - Tom O'Connor
Его также типично, если использовать SSD-диски в системе Linux, чтобы не устанавливать подкачку на накопителе SSD. В основном из-за того, что некоторые люди параноичны, это негативно скажется на сроке хранения SSD, все время сверляя один и тот же набор секторов. - djangofan
Какой AMI и какой размер экземпляра EC2. AMI необходимо настроить для использования раздела подкачки, и экземпляр должен добавить его при запуске. - Jeremy Bouse
Если это вообще возможно, я бы посоветовал не использовать swap на EC2, если вы на 99% уверены, что вам не придется его использовать (I.E. это только там для экстренной помощи). Когда мы отключили своп на некоторых наших экземплярах EC2, наши ежемесячные затраты на EOS EOB, вероятно, сократились вдвое. Только мои два цента, чтобы сэкономить вам два цента - да, это было ужасно, я извиняюсь и спрячусь в углу;) - Smudge
Вы также можете посмотреть на этом шаге docs.aws.amazon.com/AWSEC2/latest/UserGuide/... - Artem.Borysov


Ответы:


Вы правы, изображения Ubuntu EC2 EBS не поставляются с настраиваемым пространством подкачки (для 11,04 как минимум). У «обычных» изображений типа экземпляра есть раздел подкачки, хотя только 896 МБ на тот, который я тестировал.

Если какой-то процесс взрывается, и у вас нет пространства подкачки, ваш сервер может зайти на полпути на некоторое время до того, как начнет работать OOM-убийца, тогда как с заменой он просто замедляется. По этой причине мне всегда нравится иметь место подкачки, даже с достаточной оперативной памятью. Вот ваши варианты:

  • Создайте том EBS (в 2-4 раза больше размера вашей ОЗУ), присоедините его к своему экземпляру (мне нравится называть его / dev / xvdm для «памяти»), sudo mkswap /dev/xvdm, добавьте его в fstab, sudo swapon -a, и тебе хорошо идти. Я сделал это раньше, и он работает нормально, но, вероятно, он немного медленнее, чем хранилище экземпляров, потому что он проходит по сети.

  • Или вы можете переделать свой диск, чтобы добавить раздел подкачки, хотя для этого может потребоваться создание нового AMI. Я не смог сделать это в запущенном экземпляре, потому что я не могу отключить корневую файловую систему, и у меня даже нет доступа к дисководу (/ dev / xvda), только к разделу (xvda1).

  • Или вы можете создать файл подкачки. Это мое предпочтительное решение прямо сейчас.

    sudo dd if=/dev/zero of=/var/swapfile bs=1M count=2048 &&
    sudo chmod 600 /var/swapfile &&
    sudo mkswap /var/swapfile &&
    echo /var/swapfile none swap defaults 0 0 | sudo tee -a /etc/fstab &&
    sudo swapon -a
    

    Готово. :) Я знаю, что многие люди неловко обмениваются файлами вместо разделов, но он, безусловно, работает достаточно хорошо, как место аварийного свопа.


70
2018-06-12 14:46



Переключение на объем EBS может привести к дополнительным затратам, о чем свидетельствуют другие ответы. Не использование swap или замена в хранилище экземпляров кажутся лучшими решениями. - isuldor
Использование хранилища экземпляров - лучший вариант, чем EBS. EBS - это сетевая файловая система, поэтому подключается к экземпляру EC2 по тому же сетевому соединению, что и все остальное. Хранилище экземпляров прикрепляется к оборудованию, на котором размещается экземпляр (поэтому он не сохраняется, когда вы останавливаете и запускаете свой экземпляр). Единственный раз, когда EBS является опцией для обмена, - это когда вы используете тип экземпляра, который не поставляется с хранилищем экземпляра, т. Е. T1.micro (который дал ему только около 620 МБ ОЗУ, вероятно, тот, который действительно нуждается в чрезвычайной ситуации замена). - ColtonCat
Bs = 1M уже находится в двоичной нотации, поэтому множитель count = 2048 должен быть count = 2000 - если я не ошибаюсь. - ypocat
Если вы собираетесь на 2GiB, то 1024 * 2048 кажется правильным. - Jo Liss


Лучшим местом для обмена IMHO является магазин экземпляров. Зачем? AWS не взимает плату за ввод / вывод в магазине экземпляров. Кроме того, во многих случаях экземпляр-магазин более эффективен, чем EBS. Просто убедитесь, что у вас есть сценарий, который воссоздает файл подкачки, если вы остановите экземпляр. Перезагрузки в порядке. Почему, почему это не по умолчанию?

Давайте найдем хранилище экземпляров.

root@domU-**-**-**-**-**-**:/var/log# fdisk -l

[...]

Disk /dev/xvda2: 160.1 GB, 160104972288 bytes
255 heads, 63 sectors/track, 19464 cylinders, total 312705024 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/xvda2 doesn't contain a valid partition table

Ура, 160.1GB бесплатно! Поместите свой своп туда и забудьте 100 $ overages на один сервер, когда ваш подкачка на базе EBS попадет по ошибке. Несчастный опыт здесь.

По-видимому, в некоторых случаях вы не видите экземпляр-магазин.

В зависимости от типа экземпляра сначала необходимо прикрепить экземпляры хранилища экземпляров к экземпляру с помощью опций сопоставления блоков-устройств. Если вы этого не сделаете, вы можете даже не видеть устройства под / dev (согласно Как использовать хранилище томов хранилища в Amazon EC2?)


21
2017-11-24 18:57



просто хочу отметить, что пользователи t1.micro на свободном уровне не могут использовать эту опцию. - Reuben L.


Заметка: Amazon изменила свой ценовая политика, и не взимает плату за запросы ввода-вывода по состоянию на середину 2016 года. Ответ хранится здесь по историческим причинам, но нет никаких последствий для использования (или не использования) swap для экземпляров EC2, поддерживаемых EBS.


19
2017-10-21 06:53



Этот ответ немного вводит в заблуждение или запутывает меня, поскольку наиболее распространенные типы экземпляров используют тома SSD. aws.amazon.com/ec2/instance-types - Taylor Edmiston
@tedmiston: действительно, этот ответ больше не применим. Я скорректировал, чтобы отразить новую реальность, но в принципе нет никакой платы за запросы ввода-вывода, поэтому включение swap (или нет) теперь можно сделать на чистой технической основе. - Gui Ambros


Проверить /etc/fstab файл, они, вероятно, были настроены без обмена в используемом ими изображении. Я думаю, что некоторые люди работают без обмена для серверов, так как они ожидают, что никогда не будут использовать больше, чем общая память. Подкачка делает все очень медленным.

Тем не менее, я всегда параноик по поводу какого-то процесса, всплывающего в памяти, поэтому я думаю, что было бы разумно просто настроить накопитель подкачки и воссоздать образ из исполняемого экземпляра ec2.


1
2018-01-05 21:09



Иногда замена не замедляет работу системы. - laebshade