数据库性能模型与容量规划
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Q&A
blog : www.HelloDBA.net email : freezr@gmail.com twitter : hellodba 技术领域:数据库高可用,分布式架构
数据库 IO 特点分析
日志文件顺序写
• 同步写入 • 连续位置的随机 IO • 响应延时 <5ms
数据文件读写
• 异步写入 • 随机读与顺序读 • 响应延时 <10ms
瓶颈分析
• IOPS :小 IO ,数据文件随机读,随机写,日志文件写 • 吞吐量:大 IO ,数据文件连续读
物理 IO 响应时间
测试模型设计
数据规模
缓存命中 避免物理 IO 减少热点 读写比例 典型操作 IO , Latch
数据分布
数据操作
减少等待
硬件性能 -IO
存储性能指标
• IOPS • 吞吐量 • 延迟时间
存储测试工具 测试方案
• Oracle Orion • Oracle calibration_io(11g) • 小 IO 测试 IOPS • 大 IO 测试吞吐量
响应延迟 20us 10us 5us
逻辑 IO 的响应延时
事件名称 逻辑 IO ,单块读 500MHz CPU 逻辑 IO ,单块读 1GHz CPU 逻辑 IO ,单块读 2GHz CPU 每秒处理次数 50000 102400 204800
数据库类型与响应时间
CPU 密集型
• • • • • • • • • CPU time 85% User IO 10% Logical IO : 0.005 - 0.01ms User I/O 60% CPU time 20% Logical IO : 0.05 - 0.1ms User IO 85% CPU time 5% Logical IO : 0.1 - 0.5ms
消除数据库热点
消除应用热点
容量规划与风险预测
容量规划
主机容量
• DB CPU TIME < 主机 CPU 数量 × 时间 • 逻辑 IO 数量 < 主机容量 • CPU 利用率分析: Load Sys User IO • 物理 IO 数量 < 存储容量 • 物理 IO 响应时间
存储容量
ORACLE 时间模型
服务时间 等待时间
• 后台进程 • 前台进程 • IO 等待 • 并发等待 • 服务时间 + 等待时间 • SQL 执行时间 + 网络传输
SQL 执行时间 用户响应时间
ORACLE 中的时间信息
SQL exetute time
• SQL 服务时间 + 等待时间
DB CPU
• CPU 资源的消耗量
混合型
IO 密集型
基于响应时间的优化原则
减少物理 IO
• 增大 buffer cache • 缓存对象 • Sequential/scattered read • Log file sync/log file parallel write • Latch • Lock
提高 IO 响应
减少并发等待 减少逻辑 IO
其他风险因素
数据库
• 除 IO 以外的等待时间小于 5% • CPU 消耗 Hard parse Latch spin Shared pool 频繁函数调用 大量逻辑读 • 硬件性能拐点 • 内存使用量过度 • 硬件损坏,性能降级
主机
未来发展方向
硬件技术发展 • CPU 性能巨大飞跃 • SMP , NUMA , MPP • Flash 存储技术 软件架构改进 • 集中式 - 分布式 Scale up-Scale out • Disk based-SSD based 未来发展趋势 • 高密度多核 CPU • SSD 大规模普及 • 大型软硬件一体机
1s=1000ms=1000000us=1000000000ns
* 数据来自于 Google Jeff Dean 的资料
0.5 ns 5 ns 7 ns 25 ns 100 ns 3,000 ns 20,000 ns 250,000 ns 500,000 ns 10,000,000ns 20,000,000ns 150,000,000ns
关键设备的响应延迟
L1 cache reference Branch mispredict L2 cache reference Mutex lock/unlock Main memory reference Compress 1K bytes with Zippy Send 2K bytes over 1 Gbps network Read 1 MB sequentially from memory Round trip within same datacenter Disk seek Read 1 MB sequentially from disk Send packet CA->Netherlands->CA
磁盘性能分析
IOPS • 转速,寻道延时, 吞吐量 • 转速,接口类型,内部 / 接口传输率
Leabharlann Baidu
存储性能分析
IOPS
磁盘数量 缓存命中率 存储划分
吞吐量
端口数量 系统架构 串行 - 并行
正确使用存储
存储层
存储架构 存储划分 Raid 类型 LVM Raw device File system ASM
• SQL 优化
消除热点
消除存储热点
• 数据分散在更多磁盘上 • redo log 单独存放 • 减少 checkpoint 次数 • latch:cache buffer chain • library cache pin • buffer busy wait • enqueue TX • 数据密集修改 / 查询
数据库性能模型与容量规划
张瑞 @ Alibaba
问题与挑战
硬件设备选型
• 硬件选型 • 性能评估
数据库性能模型 数据库容量规划
• 容量规划 • 预测风险
• 评估应用对数据库的影响 • 响应时间为中心的优化方法
硬件测试与选型
硬件性能 -CPU
• Alibaba TPC-C 测试模型
* 以上数据针对 Alibaba 特定场景测试,不能作为普遍数据反映硬件的性能
OS 层
数据库
硬件性能模型
主机
TPC-C CPU 使用率 每秒逻辑读 IOPS 吞吐量 响应时间 拐点
存储
硬件性能模型是容量规划的前提
数据库性能模型
响应时间为中心的优化方法
优化的目标是降低响应时间 影响数据库响应时间的因素
• • • • CPU IO Memory Network • 响应时间是用户体验第一要素 • 响应时间是性能问题的直接表现
DB TIME
• 前台进程消耗时间的总和
AWR 等待时间分类
DB CPU • logical read User IO • sequential read • scattered read Commit • log file sync Concurrency • latch • buffer busy waits • library cache lock/pin Application • enqueue
• Cache 对物理 IO 响应的影响 • Sequential read 与 Scattered read • Log file sync 与 log file parallel write
逻辑 IO 响应时间
逻辑读是性能度量的重要指标
• 衡量 SQL 所耗费的系统资源 • 包含 CPU ,物理 IO……