画像要回答的问题
存储选型与调优最容易犯的错误是凭印象判断业务负载:以为「数据库就是小随机写」,实际上备份窗口里有一大段顺序读。IO 画像的作用就是用采集数据替代印象,明确业务的读写比例、块大小分布、随机程度、并发深度、热点集中度,以及这些特征在一天、一月内的变化规律。
基本信息
| 画像维度 | 读写比例、块大小分布、随机与顺序、队列深度与并发、数据集规模与热点、时间分布 |
|---|---|
| 采集窗口 | 至少覆盖一个完整业务周期,含业务高峰与批量窗口 |
| 主机侧手段 | 系统性能工具与块层追踪,可分别看设备级与进程级行为 |
| 阵列侧手段 | 阵列管理工具提供的卷级统计,可看热点与缓存命中 |
| 输出形式 | 画像摘要卡:维度取值、采集条件、峰值与均值、结论与建议 |
| 常见误区 | 短窗口取样、只看平均忽略峰值、只记 IOPS 不记随机度与块大小 |
典型使用场景
- 选型与采购前,用画像决定哪类介质与级别更合适时
- 调优前先量化现状,避免凭感觉改参数时
- 性能异常时与历史画像对比,判断负载是否发生变化
- 容量规划时按峰值而非均值估算所需能力
- 虚拟化平台评估存储适配性,确认混合负载特征时
画像采集的常用入口
画像采集的常用入口
# 设备级:块大小(avgrq-sz)、等待时间、队列与利用率
iostat -x 1 60
# 进程级:找出真正产生 IO 的进程
pidstat -d 1 30
# 块层追踪:得到更细的分布,适合短时深入分析
blktrace -d /dev/sdb -o /tmp/blk &
sleep 30; kill %1; btt -i /tmp/blk.blktrace.0 | head -40
# 采集窗口要覆盖高峰与批量窗口,并记录当时的业务状态
# 结论中必须写明采集条件,否则画像无法复用画像维度与影响
| 维度 | 采集判据 | 影响 |
|---|---|---|
| 块大小 | 平均请求大小分布 | 决定顺序度与带宽/IOPS 取向 |
| 随机度 | 寻道与命中特征 | 决定介质选型与缓存有效性 |
| 并发深度 | 队列深度与并发进程数 | 决定是否长期处于排队状态 |
| 时间分布 | 高峰与低谷的比值 | 决定容量与性能的规划余量 |
画像必须注明采集条件:时间窗、业务状态、是否有批量作业。同一系统在不同条件下的画像差异可能很大,脱离条件的数据无法比较。
按日均值做规划会系统性低估需求:业务最痛的时刻是峰值,存储能力不足也总在峰值暴露。规划应以峰值特征为主,均值只作参考。