oracle在centos上的性能调优技巧
导读:总体思路与基线 以工作负载为锚点,先建立可复现的性能基线:采集一段时间的 AWR/ADDM,记录关键指标(如 DB Time、AAS、Top 5 Timed Foreground Events、SQL ordered by Elapsed...
总体思路与基线
- 以工作负载为锚点,先建立可复现的性能基线:采集一段时间的 AWR/ADDM,记录关键指标(如 DB Time、AAS、Top 5 Timed Foreground Events、SQL ordered by Elapsed Time/CPU/IO、I/O 吞吐与延迟、SGA/PGA 命中率),每次变更后对比差异,避免“盲调”。
- 优先做“低成本高收益”的优化:SQL 与索引、统计信息、连接与并发、存储 I/O 路径,再考虑内存与操作系统参数。
- 在变更生产前,尽量在测试环境回放或影子流量验证,控制单变量变更,便于定位收益来源。
操作系统与存储层优化
- 内存与大页
- 启用 HugePages,关闭 透明大页(THP),减少 TLB miss 与页分配抖动;大内存(如 > 1 TB)场景建议将 vm.swappiness 设为 0–10 并合理设置 vm.max_map_count(Oracle 对 12c 的建议值为 262144),降低出现 ORA-4030 的概率。
- 文件系统与挂载
- 数据文件、重做日志、归档日志优先使用 XFS/EXT4,开启 noatime,nodiratime;日志与数据分离到不同物理盘或阵列,避免争用;条带化/RAID 级别与条带大小与应用 I/O 特征匹配。
- 内核网络与资源
- 适度增大 net.core.somaxconn、优化 tcp_tw_reuse/tcp_tw_recycle(按内核版本谨慎设置),为 Oracle 监听与高并发短连接场景预留端口范围与队列。
- I/O 调度与调度器
- 机械盘可用 deadline/mq-deadline,SSD/NVMe 优先 none/mq-deadline,减少不必要的合并与寻道开销。
- 透明大页与 RAC 补充
- 在 RHEL/CentOS 7+ 上,THP 对数据库负载通常不利,建议关闭;RAC 环境还需关注 DRM、_lm_sync_timeout、_lm_tickets、gcs_server_processes 等参数与补丁级别,避免 GCS/GES 争用放大。
Oracle 内存与实例参数
- 内存目标与分配
- 优先使用自动内存管理:设置 MEMORY_TARGET(或 SGA_TARGET + PGA_AGGREGATE_TARGET),让实例在负载波动时自动平衡;在 12.2+ 版本下,memory_target 与 sga_target 均可稳定使用。
- SGA 内部配比
- 高并发系统建议将 SHARED_POOL_SIZE 预留到约 SGA 的 15%,避免共享池频繁 resize 引发抖动;在 11g 可用 SGA_TARGET/PGA_AGGREGATE_TARGET,在 12.2+ 结合 memory_target 使用更灵活。
- 日志与并行
- 适度增大 LOG_BUFFER(如 64M)可降低日志缓冲区争用;在 OLTP 场景控制 PARALLEL_MAX_SERVERS,避免并行子进程泛滥导致 CPU 与 I/O 抖动。
- 连接与会话
- 依据压测结果设置 PROCESSES/SESSIONS,并启用合适的连接池(如 DRCP/应用连接池),避免短连接风暴与共享服务器配置不当造成的额外开销。
SQL 与索引及并发瓶颈定位
- SQL 与执行计划
- 避免 **SELECT ***,使用 绑定变量 降低硬解析;用 EXPLAIN PLAN/SQL Monitor 与 AWR 定位高成本操作,优先消除 全表扫描、优化 JOIN 策略与驱动表选择,必要时通过 SQL Profile/SQL Plan Baseline 稳定计划。
- 索引与分区
- 为高频过滤/连接/排序列建立合适索引,定期清理 未使用/重复 索引;大表按时间或业务键做 分区,配合 分区索引 降低扫描与维护成本。
- 典型等待与处理
- 若出现 latch: cache buffers chains,常见于热块或低效 SQL(逻辑读高),可通过 SQL 优化、分区/打散热点、减少热点更新等手段缓解。
- 若出现 buffer busy waits,多与并发读取/写入同一数据块有关,可通过分区、重建低效索引、调整 PCTFREE 等手段降低争用。
监控维护与持续优化
- 定期维护
- 使用 DBMS_STATS 定期收集 Schema/表/索引 统计信息,确保优化器选择最优计划;对高碎片对象按需进行重组或重建。
- 持续观测
- 以 AWR/ADDM 为核心做周期性巡检(如每日/每周),结合 ASH 做短时高峰剖析;对 Top SQL、Top Events、I/O 与等待链路建立阈值告警与趋势分析。
- 变更闭环
- 每次参数或 SQL 调整后,复核 AWR/ASH 差异与业务指标(TPS、RT、错误率),保留变更记录与回滚预案,形成“监控—分析—优化—复盘”的闭环。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: oracle在centos上的性能调优技巧
本文地址: https://pptw.com/jishu/781047.html
