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

Помните, что 'облако' является просто модным словечком, намеренно неопределенным для обращения почти к любому виду установки. Так, необходимо сначала разделить яблоки и апельсины. К счастью, некоторые немного более точные условия появляются.

Во-первых, вид большой тройки сервисов:

  • Инфраструктура как услуга (IaaS)
  • Платформа как сервис (PaaS)
  • Программное обеспечение как сервис (SaaS)

определения:

  • IaaS является просто VPS с некоторым API и/или веб-элементом управления, который позволяет клиенту управлять количеством экземпляров по желанию. Тарификация сделана впоследствии, согласно использованию. Это - то, что Amazon предлагают ECC, GoGrid, Rackspace 'облачные серверы', Slicehost.
  • Сервисы PaaS не дают Вам 'машину' (реальный или виртуальный), они дают Вам программируемую среду, куда можно поместить код. Это - то, какой Google, и (я думаю), Rackspace 'облачные сайты' предложение. Вы могли также сказать, что типичный общий хостинг предложений является ограниченной формой этого.
  • SaaS является определенным приложением, дающим определенным сервисам. Классическими примерами являются приложения хоста как электронная почта, ERP, CRM, и так далее.

Очень связанное предложение является устройством хранения данных (Amazon S3, Rackspace 'облачные файлы', облачное хранилище GoGrid, и т.д.), и недавно базы данных (Google, амазонка), диспетчеры очереди (Amazon, Google). Вы могли сказать, что это просто SaaS; но обычно они не очень полезны собой, таким образом, они обычно замечаются (и продаются) как часть платформы, чтобы быть добавленным к PaaS или IaaS.

Хорошо, со всеми этими классификациями, можно просто запланировать требования и проверить каждого поставщика для наблюдения, какие части предлагаются, в том, какие цены, и если они готовы использоваться, или если потребность некоторая дополнительная работа.

Например, устройство хранения данных GoGrid может просто быть смонтировано через Samba или скопировано rsync. Трафик между экземпляром сервера и устройством хранения данных не измерен. Это делает это очень простым в использовании. Файлы Rackspace, OTOH, больше похожи на Amazon: Вы получаете API в файлы чтения-записи и можете дополнительно сделать их видимыми к миру через HTTP, таким образом, Вы можете, например, изображения хранилища или видеофайлы, непосредственно упомянутые от Ваших веб-страниц. Трафик измеряется, но стоится на ГБ, способ, которым ниже... Вы получаете идею.

82
задан 8 January 2013 в 01:57
5 ответов

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

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

1
ответ дан 28 November 2019 в 19:25

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

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

  • Создайте объем EBS (2-4 раза размер Вашей RAM), присоедините его к своему экземпляру (мне нравится называть это/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
    

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

74
ответ дан 28 November 2019 в 19:25

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


Это сделано намеренно. Подкачка отключена по умолчанию для инстансов с поддержкой EC2 EBS, чтобы избежать непредсказуемых затрат.

Если у вас есть приложение, требующее много памяти, которое выходит из строя (скажем, на крошечном или маленьком экземпляре), оно может генерировать довольно большой объем запросов ввода-вывода на томе EBS. Amazon взимает 0,10 доллара США за 1 миллион запросов ввода-вывода (см. http://aws.amazon.com/pricing/ebs/ ) .

В нормальных условиях вы не должны беспокоиться об этом; Обычно стоимость запросов ввода-вывода даже на небольших экземплярах составляет несколько долларов, если так. Итак, если вы знаете, что у вас есть экземпляр правильного размера и этот своп будет использоваться нечасто, вперед и включите его. Но будьте осторожны с крошечными экземплярами.

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

20
ответ дан 28 November 2019 в 19:25

ИМХО, лучшее место для свопа - это хранилище экземпляров. Почему? 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,1 ГБ бесплатно! Поместите туда свой своп и забудьте о перерасходе 100 долларов на сервер, когда ваш своп на основе EBS по ошибке роится. Здесь говорится о неудачном опыте.

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

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

25
ответ дан 28 November 2019 в 19:25

Простое решение для запуска swap в EC2 изображениях - запустить swap , сжатый с помощью lz4 в ram с zram-init .

Это решение делает не отвести RAM от хоста :

enter image description here

0
ответ дан 28 November 2019 в 19:25

Теги

Похожие вопросы