在我的项目中停止和删除旧版本和实例似乎不会释放磁盘空间。在停止并删除工作实例然后启动新实例后,我收到与磁盘空间相关的错误消息(health_check返回不健康,我得到vm_check_disk_space.sh的日志)。我知道这与磁盘空间有关,因为我可以通过在app.yaml中提升resources: disk_size_gb
并重新部署来解决问题。
我的项目是15GB,因此删除的版本和实例不会使我的项目膨胀是至关重要的。我怎样才能释放未使用的空间?
作为参考,这是我的app.yaml(项目大小为15gb,这应该绰绰有余?)
runtime: custom
env: flex
manual_scaling:
instances: 1
resources:
cpu: 1
memory_gb: 1.5
disk_size_gb: 40
答案 0 :(得分:2)
用于特定版本的docker镜像是在部署时构建的,并且通常不包含应用程序的其他版本(除非它们也存在于您的部署目录中)。因此,在开发人员控制台中停止实例或删除其他版本对已构建的docker镜像没有影响。
增加部署详细程度(请参阅gcloud
中的--verbosity
)以查看正在构建的映像中包含的确切内容,然后在查找不需要的文件/目录时重新部署。然后使用skip_files
中的app.yaml
配置选项(请参阅General settings)跳过它们(如果有的话)。例如,典型的此类示例将是应用程序的.git
目录。重复,直到您对docker镜头中包含的内容感到满意为止。
如果在跳过不需要的文件后仍然遇到问题,则可能意味着您的自定义运行时对于应用程序的磁盘大小配置来说太大了,因此您必须增加它。
请注意,该磁盘也可用于存储在运行时生成的数据,不仅用于存储您的应用和环境代码,因此您可能还需要调查运行时使用情况,请参阅Debugging an Instance。