4. 工作负载特征分析与建模
容量规划的第一步不是算CPU核数,而是搞清楚“这台机器到底在跑什么”。同一台Lenovo ThinkSystem SR650,跑MySQL交易库和跑ClickHouse分析查询,对CPU、内存带宽、IOPS、延迟的敏感度完全不同。负载画像(Workload Profiling)就是用可观测数据把业务负载翻译成资源特征向量,让后续的容量模型有据可依。
一、负载画像的四个维度
无论哪种负载,都可以从四个维度刻画:资源消耗强度(CPU、内存、磁盘、网络各自占用多少)、时间分布特征(峰值/均值比、突发性、周期性)、并发与队列行为(并发连接数、队列深度、排队延迟)、IO与访问模式(读写比、随机/顺序、块大小、缓存命中率)。这四个维度构成负载的“指纹”,也是区分OLTP与OLAP的根本依据。
二、五类典型负载的画像特征
OLTP负载:以短事务为主,单条SQL执行时间通常在毫秒级,读写比约7:3到9:1,随机小IO(4K~16K)为主。关键指标是TPS、平均事务延迟、锁等待时间。CPU消耗集中在单核性能,内存主要消耗在Buffer Pool命中率,磁盘看随机写IOPS和fsync延迟。典型画像:CPU利用率中等但单核频率敏感,内存命中率>99%,磁盘随机写IOPS是瓶颈点。
OLAP负载:长查询、大扫描、聚合计算为主,读写比接近只读,顺序大IO(128K~1M)为主。关键指标是查询响应时间、扫描行数、Shuffle数据量。CPU消耗在多核并行,内存消耗在Hash Join和排序缓冲区,磁盘看顺序读带宽。典型画像:CPU多核利用率高,内存带宽压力大,磁盘顺序读吞吐是瓶颈点。
虚拟化负载:多VM混合,资源超分(Overcommit)是常态。画像要关注vCPU就绪时间(Ready Time)、内存气球(Ballooning)和交换(Swap)频率、存储队列延迟。关键判断依据是:如果Ready Time持续>5%,说明物理CPU争抢严重;如果Ballooning频繁,说明内存超分过度。
容器负载:与虚拟化类似但粒度更细,特点是启动快、生命周期短、密度高。画像要关注Pod的CPU Throttling次数、内存OOM Kill频率、网络PPS和连接跟踪表大小。容器负载的突发性远高于VM,因为一个Pod可能瞬间拉起几十个进程。
AI推理负载:以GPU/NPU为核心,CPU主要做数据预处理和调度。画像要关注GPU利用率、显存占用、Batch Size、推理延迟P99、CPU-GPU数据搬运量。典型特征是GPU利用率高但CPU利用率低,瓶颈常在PCIe带宽或显存容量。
三、Lenovo平台上的负载采样方法
画像数据来源分三层:硬件层用Lenovo XClarity Controller(XCC)采集CPU/内存/风扇/电源的带外数据,采样间隔可到1秒;操作系统层用sar、iostat、vmstat、perf采集CPU调度、内存回收、块设备队列、网络协议栈数据;应用层用数据库自带的performance_schema、pg_stat_statements,或容器环境的cAdvisor、eBPF工具采集SQL级、Pod级指标。
实际采样时建议遵循“三窗口”原则:基线窗口选业务低峰期连续采集24小时,得到资源消耗下限;峰值窗口选业务高峰期采集至少2小时,捕捉突发特征;异常窗口在故障或慢查询发生时触发采集,记录异常态特征。三个窗口的数据合并后,才能得到完整的负载画像。
四、从采样数据到特征向量
采样得到的是时间序列,需要提取成特征向量才能用于建模。以OLTP为例,从sar和iostat数据中提取:CPU用户态占比均值/峰值、iowait占比、内存可用量最小值、磁盘随机写IOPS均值/峰值、平均写延迟、fsync延迟P99。这些特征构成一个六维向量,用于后续的容量模型输入。
对于虚拟化场景,还需要额外提取超分比(vCPU总数/物理核数)、Ready Time占比、Ballooning次数、Swap In/Out速率。对于容器场景,提取Pod密度、CPU Throttling率、OOM Kill次数、网络PPS峰值。对于AI推理,提取GPU利用率均值、显存占用峰值、Batch Size分布、PCIe带宽利用率。
五、负载画像的验证与迭代
画像不是一次性的。业务上线后,需要用实际运行数据验证画像的准确性。验证方法:用画像特征向量输入容量模型,预测资源需求,再与实际监控数据对比。如果预测值与实际值偏差超过20%,说明画像特征提取有遗漏或权重不合理,需要回到采样阶段补充数据。
迭代周期建议按季度进行。每次迭代时,重点检查:峰值/均值比是否变化、IO模式是否改变(比如从随机写变成顺序写)、并发模型是否调整(比如连接池大小变化)。这些变化会直接影响容量规划的结论。
负载画像的最终产出是一份结构化的特征表,包含每类负载的资源消耗特征、时间分布特征、并发特征和IO特征。这份特征表是后续容量模型、资源池划分、性能调优的共同输入。没有画像的容量规划,本质上是在猜。