如何在 GCE 上的 Google 容器优化 OS 上启用 swap/swapfile?
How to enable swap/swapfile on Google container optimized OS on GCE?
在 GCE 上使用 cos-stable
容器优化 OS。微型实例所以 ram 非常稀疏。尝试启用交换以防止在 docker 拉取期间由于 OOM 而锁定,但无法使其工作。
我知道大部分文件夹都是无状态的,所以我把交换文件放在home下:
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 上启用交换的任何想法?
容器优化不支持交换 OS
Swap 会有效地破坏容器之间提供的大部分行为隔离Google。
保证 pods 永远不需要交换。 Burstable pods 应该在不需要交换的情况下满足他们的要求。 BestEffort pods 无法保证。
我强烈建议您使用更大的实例,因为 f1-micro 只有 600MB 的 RAM,您仍然需要 运行 OS 它与您的容器一起添加的实例 OS =11=]
COS 映像中禁用了基于磁盘的交换。
您可以使用
启用基于磁盘的交换
sysctl vm.disk_based_swap=1
我的 cloud-init 中有以下内容:
bootcmd:
- sysctl vm.disk_based_swap=1
- fallocate -l 1G /var/swapfile
- chmod 600 /var/swapfile
- mkswap /var/swapfile
- swapon /var/swapfile
在 GCE 上使用 cos-stable
容器优化 OS。微型实例所以 ram 非常稀疏。尝试启用交换以防止在 docker 拉取期间由于 OOM 而锁定,但无法使其工作。
我知道大部分文件夹都是无状态的,所以我把交换文件放在home下:
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 上启用交换的任何想法?
容器优化不支持交换 OS
Swap 会有效地破坏容器之间提供的大部分行为隔离Google。
保证 pods 永远不需要交换。 Burstable pods 应该在不需要交换的情况下满足他们的要求。 BestEffort pods 无法保证。
我强烈建议您使用更大的实例,因为 f1-micro 只有 600MB 的 RAM,您仍然需要 运行 OS 它与您的容器一起添加的实例 OS =11=]
COS 映像中禁用了基于磁盘的交换。 您可以使用
启用基于磁盘的交换sysctl vm.disk_based_swap=1
我的 cloud-init 中有以下内容:
bootcmd:
- sysctl vm.disk_based_swap=1
- fallocate -l 1G /var/swapfile
- chmod 600 /var/swapfile
- mkswap /var/swapfile
- swapon /var/swapfile