运行模式与扩缩容
本文档介绍云托管的运行模式及扩缩容机制,帮助您选择最适合业务场景的配置方案。
运行模式概览
云托管提供以下几种运行模式,满足不同的业务需求:
- 始终自动扩缩容:根据负载自动调整实例数量,最大程度节约资源
- 持续运行:保持固定数量的实例,适合流量稳定的场景
- 白天持续运行,夜间自动扩缩容:工作时间固定实例,非工作时间自动扩缩
- 自定义:灵活配置自动扩缩容和定时扩缩容策略
- 手工启停实例:完全手动控制实例数量
运行模式详解
始终自动扩缩容
在此模式下,云托管服务会根据实际负载情况自动调整实例数量:
- 扩缩容范围:实例数量可在 0-10 之间自动调整
- 触发指标:可选择 CPU 使用率、内存使用率或两者同时作为扩缩容触发条件
- 优势:最大程度节约资源,自动应对流量波动,降低运营成本
此模式特别适合流量波动较大或不可预测的业务场景。
持续运行
持续运行模式下,服务会保持固定数量的实例持续运行,不会自动扩缩容。
适用场景:
- 服务流量相对稳定,无明显波峰波谷
- 需要保证服务始终处于热启动状态,避免冷启动延迟
- 对服务可用性要求极高的核心业务
在此模式下,您需要根据业务峰值预估所需实例数量,确保服务稳定运行。
白天持续运行,夜间自动扩缩容
此模式结合了持续运行和自动扩缩容的优势:
- 白天时段(8:00-24:00):保持指定数量的实例持续运行
- 夜间时段(0:00-8:00):启用自动扩缩容,实例可缩至 0
适合工作时间流量较高、非工作时间流量显著降低的业务场景,如企业内部系统、办公应用等。
自定义
自定义模式提供最灵活的配置选项,包括:
自动扩缩容:
- 配置实例的最大及最小数量
- 选择 CPU 或内存使用率作为触发条件
- 设置触发阈值和检测周期
定时扩容:
- 指定时间段内保持最小实例数
- 定时扩容的实例数需大于自动扩缩容的最小实例数
- 在定时期间仍可自动扩容,但不超过最大实例限制
此模式适合有明确流量模式且需要精细控制资源的场景,如电商促销、定期任务处理等。
手工启停实例
手工启停模式下,实例完全由人工控制,不会自动扩缩:
- 实例不会因无请求而自动缩容
- 实例不会因负载增加而自动扩容
- 所有实例变更都需通过控制台或 API 手动操作
操作方式:
启动实例:
- 通过控制台版本列表中的"启动实例"操作
- 通过 API 调用启动实例
- 控制台的每次操作启动一个实例,需多次操作启动多个实例
停止实例:
- 通过控制台实例列表中的"停止实例"操作
- 通过 API 调用停止实例
- 可选择指定实例进行停止
此模式适合需要完全控制实例生命周期的场景,如开发测试环境或特殊业务需求。
实例资源使用
手工启停实例的情况下,如果实例启动后遗忘了停止实例,可能会产生不必要的资源浪费,会产生较多的计费开销。
扩缩容机制详解
实例扩容过程
实例扩容分为两个阶段:
从 0 到 1 扩容(冷启动):
- 触发条件:服务完全缩容后收到新请求
- 过程:启动一个新实例,实例就绪后开始处理请求
- 耗时因素:平台资源状态、镜像大小、业务代码启动时间等
- 用户体验:首次请求可能有一定延迟
从 1 到多实例扩容:
- 触发条件:已有实例的平均 CPU/内存使用率达到或超过配置的扩容阈值
- 过程:启动新实例,新实例就绪后加入负载均衡
- 持续监测:如检测周期后仍超过阈值,将继续扩容
- 限制:实例数量不超过配置的最大值
实例缩容机制
- 触发条件:实例无访问、无流量,闲置 10 分钟
- 缩容行为:回收并销毁闲置实例
- 最小实例:当配置了最小实例为 0 时,可能缩容至无实例状态
- 后续请求:全部缩容后的新请求将触发冷启动过程
实例销毁说明
- 实例在缩容后将被完全销毁
- 实例内的临时文件、内存数据等将一并清除
- 重要提示:请确保您的应用是无状态的,所有持久化数据应存储在外部存储服务中
选择合适的运行模式
运行模式 | 适用场景 | 成本效益 | 响应速度 |
---|---|---|---|
始终自动扩缩容 | 流量波动大、不可预测 | 最优 | 可能有冷启动延迟 |
持续运行 | 流量稳定、高可用要求 | 固定较高 | 最佳(无冷启动) |
白天持续运行,夜间自动扩缩容 | 工作时间集中型应用 | 较优 | 工作时间最佳,非工作时间可能有延迟 |
自定义 | 有明确流量模式、需精细控制 | 可优化 | 可根据配置优化 |
手工启停实例 | 开发测试、特殊业务需求 | 完全可控 | 取决于人工操作及时性 |