3. 迁移前基线采集:如何对现有服务目录平台进行全面的运行基线数据采集
迁移前基线采集是架构迁移适配的起点,其目标是为目标云原生环境提供可量化的性能锚点。若缺少准确的基线数据,迁移后的性能劣化或资源超配将无法被有效归因。本节将围绕 CPU、内存、IO 和网络延迟四个核心维度,阐述采集方法、工具选型与数据规整策略。
3.1 基线采集总体流程
基线采集并非简单的指标抓取,而是一个包含“定义-采集-清洗-标记”的闭环过程。建议按照以下步骤执行:
- 定义采集窗口:覆盖业务高峰、低峰与日常时段,至少持续 7×24 小时。
- 确定采样粒度:CPU/内存建议 5-10 秒,IO 与网络延迟建议 1-5 秒。
- 部署采集代理:优先使用无侵入或低侵入方案,避免观测效应。
- 数据清洗与对齐:剔除异常尖刺,统一时间戳精度。
- 生成基线快照:输出 P50/P95/P99 分位值与均值,作为迁移后对比基准。
实践建议: 在采集期间同步记录服务目录平台的业务交易量(如每分钟 API 调用数),以便迁移后做“每交易资源消耗”的归一化对比,避免因业务量波动导致误判。
3.2 四维基线采集详解
下表汇总了四个维度的关键采集指标、推荐工具与注意事项:
| 维度 | 核心指标 | 推荐工具/方法 | 采集注意事项 |
|---|---|---|---|
| CPU | 使用率(%)、平均负载、上下文切换次数 | top / htop / Prometheus Node Exporter | 区分 user/sys/iowait;注意超线程核的计数方式 |
| 内存 | 已用内存、缓存/缓冲区、Swap 使用率 | free -m / /proc/meminfo / Grafana | 关注 JVM 堆外内存与堆内 GC 频率 |
| IO | IOPS、吞吐量(MB/s)、平均延迟(ms)、队列深度 | iostat / fio / Node Exporter diskstats | 区分读写比例;关注日志盘与数据盘的差异 |
| 网络延迟 | TCP 往返时间(RTT)、重传率、连接数 | ping / tcpdump / eBPF / cAdvisor | 测量服务间延迟而非仅 ICMP;关注 P99 延迟 |
3.3 基线数据采集架构
下图展示了针对服务目录平台的典型基线采集部署架构,涵盖从主机层到应用层的指标汇聚路径:
3.4 关键指标采集命令速查
以下为现场采集时常用的命令片段,建议在采集前进行验证:
# CPU 与上下文切换(每 5 秒采样一次)
mpstat -P ALL 5 > cpu_baseline.log
# 内存与 Swap 使用
free -h -s 5 > mem_baseline.log
# IO 延迟与队列(关注 await 与 svctm)
iostat -x 5 > io_baseline.log
# 网络延迟(服务间 RTT,单位 ms)
ping -c 100 -i 0.1 service-catalog-peer > net_latency.log
# 全量指标采集(使用 Prometheus Node Exporter 文本格式)
curl -s http://localhost:9100/metrics | grep -E 'node_cpu|node_memory|node_disk|node_network' > full_metrics.prom
注意: 采集命令应避免在生产高峰期首次运行。建议先在预发环境验证 IO 与网络延迟采集对业务的影响,确认无显著性能干扰后再全量部署。
3.5 基线数据规整与输出
原始采集数据需经过规整才能形成可对比的基线快照。推荐使用以下数据模型进行存储:
| 字段 | 类型 | 示例值 | 说明 |
|---|---|---|---|
| timestamp | RFC3339 | 2025-03-21T14:30:00Z | 采集时间戳,统一转为 UTC |
| host | string | catalog-node-01 | 主机标识 |
| cpu_usage_pct | float | 45.2 | CPU 使用率百分比 |
| mem_used_gb | float | 12.8 | 已用内存(GB) |
| disk_iops | int | 320 | 磁盘 IOPS |
| net_rtt_ms_p99 | float | 2.5 | 网络 P99 延迟(ms) |
规整后的基线数据应输出为 CSV 或 Parquet 格式,并附带一份摘要报告,包含以下内容:
- 峰值时段标记:CPU 与 IO 同时达到高位的时段,用于迁移后的压力测试场景设计。
- 资源利用率分布:P50/P95/P99 分位值,避免被平均值掩盖的尖刺。
- 异常事件记录:采集期间发生的 OOM、CPU 软锁、网络超时等事件的时间戳与上下文。
基线采集完成标志: 当四维指标均完成至少 7 天连续采集,且数据规整后生成了一份包含分位值、峰值时段与异常事件的摘要报告,即可认为迁移前基线采集阶段结束,进入架构迁移适配分析环节。