- 首页 >
- 问答 >
-
云计算 >
- centos oracle存储优化方法
centos oracle存储优化方法
小樊
42
2025-12-31 03:48:24
CentOS 上 Oracle 存储优化方法
一 存储架构与布局
- 介质优先:优先使用SSD/NVMe或企业级阵列,提升IOPS与吞吐;机械盘适合冷数据归档。
- 条带化:在LVM或阵列层做条带化(Striping),均衡多盘并发,降低热点。
- 文件分离:将数据文件、索引文件、临时表空间、Redo 日志、归档日志分别放置于不同磁盘/阵列,避免写互相干扰;归档日志可进一步条带化。
- 裸设备 vs 文件系统:在高并发、低延迟场景可考虑裸设备(Raw Device);通用场景建议使用XFS/ext4并配合条带化与对齐。
- 对齐与分区:存储与文件系统需4KB/512B 对齐,分区起始于1MB边界,减少读/写放大与抖动。
二 文件系统与挂载选项
- 文件系统选择:Oracle 常用XFS(高并发、大文件表现好)或ext4(通用稳定);避免使用NFS做重 I/O(除非具备Direct NFS与高性能网络)。
- 挂载选项建议:
- XFS:使用noatime,nodiratime,barrier=1(或relatime)、allocsize=16m;确保sector size=512/4K与条带单元匹配。
- ext4:使用noatime,nodiratime,barrier=1,data=ordered;同样注意stride/stripe-width与条带匹配。
- 虚拟环境(KVM/QEMU):磁盘使用virtio驱动;磁盘缓存模式优先none(绕过宿主机 Page Cache,避免双重缓存),在数据安全优先场景可选writethrough;AIO 选择native AIO;I/O 调度器在虚拟化下优先noop/deadline。
三 Linux I O 与 AIO 调优
- 异步 I/O:启用Linux native AIO并配置 Oracle 参数disk_asynch_io=true,提升DBWn/LGWR吞吐与并发;在部分平台需确保**/dev/aio**可用并正确授权。
- I/O 调度器:
- 物理机/本地盘:数据库负载常用deadline(低延迟)或noop(SAN/已有调度优化时)。
- 虚拟化:优先noop/deadline,减少调度开销。
- AIO 并发上限:提升fs.aio-max-nr,避免 AIO 资源不足导致等待。
- 脏页与回写:适度降低vm.dirty_ratio(如20)与vm.dirty_background_ratio(如3),缩短vm.dirty_expire_centisecs(如500)与vm.dirty_writeback_centisecs(如100),加速刷盘并降低抖动;vm.swappiness=10减少换页,vm.min_free_kbytes=524288保障低水位。
- 内存锁定:配置**/etc/security/limits.conf中 oracle 用户的memlock**,锁定SGA在物理内存,避免换出(配合 HugePages 更佳)。
四 Oracle 数据库存储相关参数
- 内存与多块读:启用ASMM/AMM合理设置SGA_TARGET/PGA_AGGREGATE_TARGET(启用 HugePages 时禁用AMM,使用ASMM);根据负载调db_file_multiblock_read_count(全表扫描/索引快速全扫描受益)。
- 写进程与日志:按负载增加DB_WRITER_PROCESSES(多块设备/高脏页率场景);LOG_BUFFER适度增大(如64M)以减少LGWR提交等待;确保Redo与数据/索引物理分离。
- 临时与排序:为TEMP表空间配置充足空间与合适SORT_AREA_SIZE(或使用 PGA 自动管理),避免磁盘排序。
- 归档与备份:高归档吞吐时,将归档日志与在线日志/数据分离,并条带化;备份窗口内控制并发备份与I/O 限流。
五 虚拟化与云环境的专项建议
- 驱动与缓存:使用virtio磁盘;缓存模式优先none(性能与一致性平衡),仅在强一致诉求下用writethrough;unsafe风险高不建议生产使用。
- AIO 与调度:启用native AIO;I/O 调度器选noop/deadline以减少额外调度成本。
- 存储后端:优先本地 NVMe/SSD或具备写回缓存与电池/超级电容保护的阵列;对象存储用于备份/冷数据。
- 网络存储:若必须使用NFS,启用DNFS并优化rsize/wsize、并发、挂载选项;确保网络带宽与延迟满足日志与数据通道需求。