答:核心指标包括:CPU 使用率、内存与 Swap 占用、磁盘 I/O(读写吞吐与 IOPS)、磁盘延迟、网络带宽与丢包率、进程/线程数量、系统负载(load average)、应用层响应时间(RTT)、错误率与队列长度。对数据库还需监控慢查询、连接数和锁等待;对缓存服务监控命中率和内存回收。把这些指标分为系统、网络、存储、应用四类,便于报警与容量规划。
答:常用方案有基于 agent 的采集(如 Prometheus Node Exporter、Telegraf、Datadog Agent)、无 agent 的 API/云监控(若使用公有云提供商),以及基于 syscall 的采样工具(如 eBPF/Netdata)。关键是采集频率、保留策略与标签(region、instance type、app name)统一。
答:选择工具时考虑:所需指标粒度、可视化能力、报警与通知、扩展性、成本与运维复杂度、与现有 CI/CD/CMDB 的集成能力。开源常见组合是 Prometheus + Grafana,适合自建与自定义;企业级可选 Datadog、New Relic,提供 APM、日志与追踪一体化;轻量可用 Netdata 做即时诊断。
答:若团队擅长运维且追求成本可控,优先 Prometheus/Grafana;若需要快速上线并且重视 SRE 效率,可选 SaaS 监控;对跨区域(新加坡+海外)部署,关注全局视图与网络链路可观测性。
答:常用触发策略包括基于 CPU、请求速率(RPS)、平均延迟、队列长度或自定义业务指标(如订单量)。建议采用混合策略:基础水平扩缩基于 CPU(例如 CPU > 70% 持续 3-5 分钟触发扩容;CPU < 30% 持续 10 分钟触发缩容),而对延迟敏感的服务以 95/99 百分位延迟作为保护阈值。设置冷却时间(cooldown)避免抖动,如扩容冷却 300 秒,缩容冷却 600 秒。
答:优先横向扩缩(增加实例),因为更易保证可用性与无状态伸缩;纵向伸缩(调整实例规格)适用于短期负载突增或对单实例性能要求高的场景,但通常会有重启或迁移成本。
答:无缝伸缩的关键是将服务设计为可水平扩展:确保无状态(或外置状态),会话使用共享存储或分布式会话(Redis、Memcached)、使用集中式数据库并做好连接池与读写分离。负载均衡器应配置健康检查与权重调整,避免将流量分配给未就绪实例。
答:CI/CD 管道应支持滚动或蓝绿部署,确保新实例加入前完成初始化与探活。对需持久化的数据使用网络存储(NFS/对象存储)或数据库复制,避免本地盘数据丢失。利用服务发现与配置中心动态下发配置,减少人工干预。
答:配置多级健康检查(TCP、HTTP、应用层探针),并设置熔断/限流策略避免故障蔓延。自动伸缩事件配合自动回退与告警,确保出现异常时能快速恢复稳定。
答:优化成本的措施包括:合理 Right-size 实例(避免长期过配)、使用按需与预留/包年实例组合、对非高峰时段采用计划性缩容、考虑抢占式/竞价实例用于非关键计算任务。通过缓存(CDN、应用层缓存)、连接池优化与数据库读写分离降低后端实例负载,从而减少伸缩触发频率。
答:定期基于监控数据回顾伸缩触发事件,调整阈值与冷却时间,使用模拟压测验证伸缩策略并防止抖动。对成本敏感的团队应建立伸缩成本告警(例如单小时费用超出预期)与成本归因面板,以便持续优化。