Как включить подкачку / файл подкачки в ОС, оптимизированной для контейнеров Google, на GCE?

Использование cos-стабильной оптимизированной для контейнеров ОС на GCE. Экземпляр Micro так таран довольно редкий. Пытался включить подкачку, чтобы предотвратить блокировку из-за OOM во время вытягивания докера, но не могу заставить его работать.

Я понимаю, что большинство папок не имеют состояния, поэтому я помещаю файл подкачки в главную:

sudo fallocate -l 1G /home/user/swapfile

sudo chmod 600 /home/user/swapfile

sudo mkswap /home/user/swapfile результаты:
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf

Но sudo swapon /home/user/swapfile выдает ошибку:
swapon: /home/user/swapfile: swapon failed: Invalid argument

Есть идеи, как включить своп по cos?

Спасибо


person odogggg    schedule 02.10.2019    source источник


Ответы (2)


Подкачка на основе диска отключена в образе COS. Вы можете включить подкачку на основе диска с помощью

sysctl vm.disk_based_swap=1

У меня в облаке-init есть следующее:

bootcmd:
- sysctl vm.disk_based_swap=1
- fallocate -l 1G /var/swapfile
- chmod 600 /var/swapfile
- mkswap /var/swapfile
- swapon /var/swapfile
person StAdmin    schedule 29.10.2019
comment
Ого, приятно. Я должен это попробовать. Большое спасибо. - person odogggg; 31.10.2019
comment
Это более старая версия COS? Когда я запускаю первую строку, я получаю следующее: -bash: sysctl: command not found - person AreToo; 04.03.2020
comment
@AreToo После выполнения всех команд в ssh я добавил настраиваемый ключ метаданных startup-script в экземпляр COS со следующими значениями: sysctl vm.disk_based_swap=1; sudo swapon /PATH_TO_YOUR/swapfile - person mu3; 14.07.2020

Своп не поддерживается в ОС, оптимизированной для контейнеров.

Swap фактически разрушит большую часть поведенческой изоляции, которую Google предлагает между контейнерами.

Гарантированные стручки никогда не должны требовать замены. Запросы пакетных модулей должны удовлетворяться без необходимости подкачки. На капсулы BestEffort не распространяется гарантия.

Я настоятельно рекомендую вам использовать более крупный экземпляр только в качестве f1-micro. имеет 600 МБ ОЗУ, и вам все равно нужно запустить ОС на экземпляре, который он добавляет с вашими контейнерами

person Ernesto U    schedule 03.10.2019
comment
Спасибо за ответ, но я не использую k8s. Это всего лишь одна виртуальная машина, на которой запущено несколько контейнеров докеров, управляемых командой docker compose. Невозможно переключиться на более крупный экземпляр, потому что проект должен всегда находиться на уровне бесплатного пользования. Мне кажется интересным, что такая минимальная ОС без каких-либо встроенных пакетов включает swapon, но не поддерживает swap. Возможно, мне стоит использовать другой дистрибутив, так как свопинг имеет решающее значение во время этих редких всплесков памяти. - person odogggg; 04.10.2019
comment
Я понимаю ваши ограничения, вам следует использовать другую ОС. Я тестировал шаги по добавлению памяти подкачки в GCP с Ubuntu и CoreOS, она работает так, как вы ожидаете help.ubuntu.com/community/SwapFaq - person Ernesto U; 04.10.2019