利用AIX条带化(STRIPE)优化数据库IO

本文涉及的产品
可视分析地图(DataV-Atlas),3 个项目,100M 存储空间
简介:

 一、背景

生产环境IBM P560目前用于Oracle DataGuard 的standby机器。在oracle Apply 归档日志时,查看服务器IO情况,发现Hdisk0、1上的IO有时候能达到到100%。而Hdisk2、3上IO活动很少。
经分析,oracle的数据文件存放目录放在/oradata,该目录建立在hdisk0、1上。故在数据库发生读写数据文件时,只有hdisk0,1有IO。另外2块盘IO活动少。故考虑将数据库文件从rootvg迁移出来,将数据库的归档文件建立在rootvg里,达到平均分布服务器的IO的目的。

二、理论支持
一般以LVM管理的存储,一个vg中可能会有很多pv,同样的,一个lv可能跨越多块pv,为了使硬盘存储速度加快,就会用到条带化的技术,即把连续的数据分成大小相同的数据块,然后依次存储在各个pv上。类似于RAID0,使存储速度加快。但并不会使数据像RAID0一样危险容易丢失,因为在正式使用中,不会像此时做测试一样没有任何保障地将多块硬盘做成一个vg,而是普遍连接的后台存储,在划分LUN之前,已经在物理硬盘上做好RAID5或RAID1,在RAID5或RAID1的基础上再划分出多块LUN,即系统上的pv,即使pv所在硬盘损坏,但有底层的硬RAID冗余,并不会丢失数据。
条带单元大小:即条带化的LV中,每一个条带单元的大小,对应于I/O中数据块的大小。对于Oracle来讲,db_block_size即设定的数据块大小。而db_file_multiblock_read_count就一次读取时最多并行的数据块的个数,db_block_size和db_file_multiblock_read_count相乘即一次总的I/O大小。这个大小不能超过操作系统的最大I/O (max_io_size)值。在ORACLE应用中,lv条带的大小一般设置为两倍或两倍以上的Oracle块大小,因为假如设置成与Oracle数据块相同大小,无法保证Oracle数据块的边界正好与条带单元的边界对应,如果不对应的话,就会出现大量的一个I/O由两个条带单元,来处理的情况。
条带大小的原则:对于高并发并且IO请求小的情况下,一块物理硬盘处理多个I/O请求,低并发但I/O请求较大时,可能需要多块硬盘处理一个I/O请求。原则上的要求是一次I/O请求能被一次性处理完成。
大概的条带化的概念就是这样。

三、参数提取

 
  1. P560A:/#lspv 
  2. hdisk0          00c3ee9e3439bc67                    rootvg          active 
  3. hdisk1          00c3ee9e5033384d                    rootvg          active 
  4. hdisk2          00c3ee9eae48cc48                    rootvg          active 
  5. hdisk3          00c3ee9eae48df75                    rootvg          active 
  6.  
  7. P560A:/#lspv -l hdisk0 
  8. hdisk0: 
  9. LV NAME               LPs   PPs   DISTRIBUTION          MOUNT POINT 
  10. hd10opt               8     8     00..00..08..00..00    /opt 
  11. hd3                   40    40    00..00..40..00..00    /tmp 
  12. hd1                   4     4     00..00..04..00..00    /home 
  13. hd2                   16    16    00..00..16..00..00    /usr 
  14. hd9var                4     4     00..00..04..00..00    /var 
  15. hd8                   1     1     00..00..01..00..00    N/A 
  16. hd4                   4     4     00..00..04..00..00    / 
  17. hd5                   1     1     01..00..00..00..00    N/A 
  18. hd6                   32    32    00..00..32..00..00    N/A 
  19. tsmdb                 30    30    20..10..00..00..00    /tsmdb 
  20. oradatalv             278   278   49..11..00..109..109  /oradata 
  21. oraclelv              40    40    40..00..00..00..00    /home/oracle 
  22. weblogiclv            40    40    00..40..00..00..00    /weblogic 
  23. weblogic9lv           40    40    00..40..00..00..00    /weblogic9 
  24. lg_dumplv             8     8     00..08..00..00..00    N/A 
  25.  
  26. P560A:/#lspv -l hdisk1 
  27. hdisk1: 
  28. LV NAME               LPs   PPs   DISTRIBUTION          MOUNT POINT 
  29. hd10opt               8     8     00..00..08..00..00    /opt 
  30. hd3                   40    40    00..00..40..00..00    /tmp 
  31. hd1                   4     4     00..00..04..00..00    /home 
  32. hd2                   16    16    00..00..16..00..00    /usr 
  33. hd9var                4     4     00..00..04..00..00    /var 
  34. hd8                   1     1     00..00..01..00..00    N/A 
  35. hd4                   4     4     00..00..04..00..00    / 
  36. hd5                   1     1     01..00..00..00..00    N/A 
  37. hd6                   32    32    00..00..32..00..00    N/A 
  38. tsmdb                 30    30    20..10..00..00..00    /tsmdb 
  39. oradatalv             324   324   89..17..00..109..109  /oradata 
  40. fwdump                2     2     00..02..00..00..00    /var/adm/ras/platform 
  41. weblogiclv            40    40    00..40..00..00..00    /weblogic 
  42. weblogic9lv           40    40    00..40..00..00..00    /weblogic9 
  43.  
  44. P560A:/#lspv -l hdisk2 
  45. hdisk2: 
  46. LV NAME               LPs   PPs   DISTRIBUTION          MOUNT POINT 
  47. oradatalv             598   598   152..223..223..00..00 /oradata 
  48.  
  49. P560A:/#lspv -l hdisk3 
  50. hdisk3: 
  51. LV NAME               LPs   PPs   DISTRIBUTION          MOUNT POINT 
  52. archlog_lv            400   400   00..223..177..00..00  /archivelog 
  53.  
  54. P560A:/#lslv -l oradatalv 
  55. oradatalv:/oradata 
  56. PV                COPIES        IN BAND       DISTRIBUTION   
  57. hdisk0            278:000:000   3%            049:011:000:109:109  
  58. hdisk1            324:000:000   5%            089:017:000:109:109  
  59. hdisk2            598:000:000   37%           152:223:223:000:000  
  60.  
  61. P560A:/#lslv -l oraclelv 
  62. oraclelv:/home/oracle 
  63. PV                COPIES        IN BAND       DISTRIBUTION   
  64. hdisk0            040:000:000   0%            040:000:000:000:000  
  65.  
  66. P560A:/#lslv -l archlog_lv 
  67. archlog_lv:/archivelog 
  68. PV                COPIES        IN BAND       DISTRIBUTION   
  69. hdisk3            400:000:000   55%           000:223:177:000:000  


四、优化步骤
1、把hdisk2从rootvg中剔除
reducevg –d rootvg hdisk2;
2、将hdisk2、hdisk3做成datavg
smit mkvg 输入VG名字为datavg,选择盘为hdisk2 、hdisk3;
3、smit mklv 新建条带化LV
  LV名字输入:oradata_lv
  LV类型为:JFS2
  LV分布的PV:hdisk2、hdisk3
  strip Size 选择:128K (建议为oracle 的db_block_size *同时读取的块,目前系统最大允许为128K);
  lslv -m oradata_lv 发现LV的物理分区平均分布在hdisk2 和Hdisk3上

4、新建文件系统
  smit jfs2 建立文件系统

五、优化结果
P560A:/backup#lspv
hdisk0          00c3ee9e3439bc67                    rootvg          active
hdisk1          00c3ee9e5033384d                    rootvg          active
hdisk2          00c3ee9eae48cc48                    datavg          active
hdisk3          00c3ee9eb6975c7e                    datavg          active
 

本文转自zylhsy 51CTO博客,原文链接:http://blog.51cto.com/yunlongzheng/721141,如需转载请自行联系原作者
相关实践学习
DataV Board用户界面概览
本实验带领用户熟悉DataV Board这款可视化产品的用户界面
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3 )前置知识要求   课程大纲 第一章 了解数据仓库概念 初步了解数据仓库是干什么的 第二章 按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章 数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章 采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章 用户行为数据仓库 严格按照企业的标准开发 第六章 搭建业务数仓理论基础和对表的分类同步 第七章 业务数仓的搭建  业务行为数仓效果图  
相关文章
|
21天前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
58 11
|
2月前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
2月前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
2月前
|
存储 NoSQL 分布式数据库
微服务架构下的数据库设计与优化策略####
本文深入探讨了在微服务架构下,如何进行高效的数据库设计与优化,以确保系统的可扩展性、低延迟与高并发处理能力。不同于传统单一数据库模式,微服务架构要求更细粒度的服务划分,这对数据库设计提出了新的挑战。本文将从数据库分片、复制、事务管理及性能调优等方面阐述最佳实践,旨在为开发者提供一套系统性的解决方案框架。 ####
|
2月前
|
存储 SQL 数据库
深入浅出后端开发之数据库优化实战
【10月更文挑战第35天】在软件开发的世界里,数据库性能直接关系到应用的响应速度和用户体验。本文将带你了解如何通过合理的索引设计、查询优化以及恰当的数据存储策略来提升数据库性能。我们将一起探索这些技巧背后的原理,并通过实际案例感受优化带来的显著效果。
58 4
|
2月前
|
SQL druid 数据库
如何进行数据库连接池的参数优化?
数据库连接池参数优化包括:1) 确定合适的初始连接数,考虑数据库规模和应用需求;2) 调整最大连接数,依据并发量和资源状况;3) 设置最小空闲连接数,平衡资源利用和响应速度;4) 优化连接超时时间,确保系统响应和资源利用合理;5) 配置连接有效性检测,定期检查连接状态;6) 调整空闲连接回收时间,适应访问模式并配合数据库超时设置。
|
2月前
|
SQL 缓存 监控
数据库优化
【10月更文挑战第29天】数据库优化
52 1
|
2月前
|
缓存 关系型数据库 MySQL
如何优化 MySQL 数据库的性能?
【10月更文挑战第28天】
153 1
|
2月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
387 1
|
2月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
163 0
下一篇
开通oss服务