Я использую последнюю версию CoreOS AMI (ami-0fc25a0b6bd986d03 подробности) на маленьком t2.nano
пример.
У этого экземпляра всего 500 МБ памяти. К сожалению, CoreOS сразу потребляет ~ 240 МБ для tmpfs, который затем монтируется в /tmp
как показано ниже. Кажется, это полностью съедает мою shared
память и я не могу запускать контейнеры. Есть ли способ уменьшить его размер? Или, возможно, каким-то образом смонтировать / tmp в корневую файловую систему?
Я подумываю отказаться от CoreOS только потому, что я не могу заставить его работать с небольшими размерами экземпляров, и это позор, поскольку я выбрал его специально потому, что это должна была быть крошечная ОС, которая не мешает мне запускать контейнеры ... .
$ free -h
total used free shared buff/cache available
Mem: 479Mi 232Mi 7.0Mi 199Mi 238Mi 34Mi
Swap: 0B 0B 0B
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 219M 0 219M 0% /dev
tmpfs 240M 0 240M 0% /dev/shm
tmpfs 240M 488K 240M 1% /run
tmpfs 240M 0 240M 0% /sys/fs/cgroup
/dev/xvda9 14G 2.8G 9.9G 22% /
/dev/mapper/usr 985M 791M 143M 85% /usr
none 240M 200M 41M 84% /run/torcx/unpack
tmpfs 240M 0 240M 0% /media
tmpfs 240M 0 240M 0% /tmp
/dev/xvda6 108M 112K 99M 1% /usr/share/oem
/dev/xvda1 127M 53M 74M 42% /boot
tmpfs 48M 0 48M 0% /run/user/500
Изменить: возможно, актуально, RancherOS, по-видимому, требует минимум 1 ГБ для запуска, хотя их GitHub обсуждает значения от 512 МБ до 2 ГБ. Мне непонятно, почему эти «крошечные ОС» имеют такие относительно высокие потребности в оперативной памяти. Для контекста минимальный размер Debian составляет 256 МБ при автономной установке.
Это из-за torcx, который позволяет вам выбрать нужную версию Docker в системе. torcx распаковывает выбранный образ Docker в файл tmpfs. Это технически возможно обойти, например отключив torcx и предоставив собственную среду выполнения контейнера, но официально не поддерживаемых способов сделать это.