AIX本地磁盘i/o优化

什么是磁盘的IO?
当一块磁盘被格式化后,会被分成上百个磁道(tracks),每个磁道又将被分割成许多扇区(sectors),一般都是512 bytes。上下一串盘片中,相同半径的磁道所组成的一个圆柱型的环壁,就称为柱面。
 
 
磁带的读写过程主要包括三个部分:
寻道时间:
磁盘头从原始位置径直移动到目标数据所在的磁道的时间(平均是8毫秒)
旋转延迟时间:通过盘片的旋转,使得要读取的扇区转到读写头的下方的时间。这个时间取决磁盘的转数,比如一块7200(转/分钟)的硬盘,120转/秒,一转大概需要8毫秒,平均旋转延迟是4毫秒。
传输时间:磁盘传输数据的时间,这个取决于磁盘接口速率,SATA、FC、SAS盘的接口带宽都各不相同。比如2Gb/s的带宽,8K的数据块大概只需要0.004毫秒。

磁盘的IO=寻道时间+旋转延迟时间+传输时间


 

一块已经固定磁盘无法去变更旋转速率和传输时间,只能通过优化数据的存放位置来减少寻道时间和平均旋转延迟,从而加快磁盘的IO 速率。


AIX下的磁盘结构:

AIX操作系统将PV划分成5个区域,这些区域与他们在硬盘磁盘自身上的位置对应:外侧边缘(out edge)、外侧中间(outer middle)、中心(center)、内侧中间(inner middle)和内侧边缘(inner edge)。

PP是由一组大量的连续扇区组成,从1开始编号,out edge到inner edge根据磁盘的大小被分成了一定数量的PP数。5个区域分配的PP数量大致相等。如下:


# lspv -p hdisk1
hdisk1:
PP RANGE    STATE      REGION                LV NAME                          TYPE              MOUNT POINT
  1-1          used        outer edge        hd5                                  boot              N/A
  2-76        used        outer edge        fslv01                            jfs2              /oracle
  77-102      free        outer edge                                                                      
103-110      used        outer edge        lg_dumplv                      sysdump        N/A
111-210      used        outer middle    hd6                                  paging          N/A
211-211      used        outer middle    fwdump                            jfs2              /var/adm/ras/platform
212-213      used        outer middle    livedump                        jfs2              /var/adm/ras/livedump
214-218      used        outer middle    fslv01                            jfs2              /oracle
219-219      used        outer middle    hd11admin                      jfs2              /admin
220-220      used        center                hd8                                  jfs2log        N/A
221-239      used        center                hd2                                  jfs2              /usr
240-243      used        center                hd9var                            jfs2              /var
244-323      used        center                hd3                                  jfs2              /tmp
324-324      used        center                hd1                                  jfs2              /home
325-328      used        center                hd10opt                          jfs2              /opt
329-330      used        inner middle    hd4                                 jfs2              /
331-437      free        inner middle                                                                  
438-464      free        inner edge                                                                      
465-504      used        inner edge        testlv                            jfs2              /test
505-546      free        inner edge                                                                      
 
总共有546个PPS:
outer edge的PPS=110
outer middle的PPS=109
center的PPS=109
inner middle的PPS=109
inner edge的PPS=109
其中/oracle 文件系统对应fslv01的被分配到了2个区域,前5个PP在outer  middle区域,其他PP在out edge中。
                                                                    
# lslv -p hdisk1 fslv01
hdisk1:fslv01:/oracle
USED      0006      0007      0008      0009      0010      0011      0012      0013      0014            1-10
0015      0016      0017      0018      0019      0020      0021      0022      0023      0024            11-20
0025      0026      0027      0028      0029      0030      0031      0032      0033      0034            21-30
0035      0036      0037      0038      0039      0040      0041      0042      0043      0044            31-40
0045      0046      0047      0048      0049      0050      0051      0052      0053      0054            41-50
0055      0056      0057      0058      0059      0060      0061      0062      0063      0064            51-60
0065      0066      0067      0068      0069      0070      0071      0072      0073      0074            61-70
0075      0076      0077   0078      0079      0080      FREE      FREE      FREE      FREE               71-80
FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE            81-90
FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE            91-100
FREE      FREE      USED      USED      USED      USED      USED      USED      USED      USED          101-110
 
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          111-120
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          121-130
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          131-140
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          141-150
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          151-160
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED         161-170
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          171-180
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          181-190
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          191-200
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          201-210
USED      USED      USED      0001      0002      0003      0004      0005      USED                    211-219
 
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          220-229
USED      USED      USED   USED      USED      USED      USED      USED      USED      USED          230-239
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          240-249
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          250-259
USED      USED      USED      USED      USED     USED      USED      USED      USED      USED          260-269
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          270-279
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          280-289
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          290-299
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          300-309
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          310-319
USED      USED      USED      USED      USED      USED      USED      USED      USED                     320-328
 
USED      USED      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE          329-338
FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE          339-348
FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE          349-358
FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE          359-368
FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE          369-378
FREE      FREE      FREE      FREE      FREE      FREE      FREE   FREE      FREE      FREE             379-388
FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE          389-398
FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE          399-408
FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE     FREE          409-418
FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE          419-428
FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE                    429-437
 
FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE          438-447
FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE          448-457
FREE      FREE      FREE      FREE      FREE      FREE      FREE      USED      USED      USED          458-467
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          468-477
USED      USED     USED      USED      USED      USED      USED      USED      USED      USED           478-487
USED      USED      USED      USED      USED      USED      USED      USED      USED      USED          488-497
USED      USED      USED      USED      USED      USED      USED      FREE      FREE      FREE          498-507
FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE          508-517
FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE          518-527
FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE          528-537
FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE      FREE                    538-546 


 
由于中心是磁盘头经常通过的区域,所以越靠近中心,寻道时间就越短,从而加快整体的IO。而在out edge或者inner edge 的数据需要花费的寻道时间较长,从而导致应用程序的响应缓慢。

虽然outer edge的寻道时间长,但是由于在圆的外道,圆周的速度最快,所以outer edge的顺序读写速度更快些。


下面测试下:

先将/dev/ fslv01的前5个pp移到out edge中:


#migratelp fslv01/1 hdisk1/77
# migratelp fslv01/2 hdisk1/78
# migratelp fslv01/3 hdisk1/79
#migratelp fslv01/4 hdisk1/80
# migratelp fslv01/5 hdisk1/81
 
# lspv -p hdisk1
hdisk1:
PP RANGE    STATE      REGION                LV NAME                          TYPE              MOUNT POINT
  1-1          used        outer edge        hd5                                  boot              N/A
  2-81        used        outer edge        fslv01                            jfs2              /oracle
  82-102      free        outer edge                                                                      
103-110      used        outer edge        lg_dumplv                      sysdump        N/A
111-210      used        outer middle    hd6                                  paging          N/A
211-211      used        outer middle    fwdump                            jfs2              /var/adm/ras/platform
212-213      used     outer middle    livedump                        jfs2              /var/adm/ras/livedump
214-218      free        outer middle                                                                  
219-219      used        outer middle    hd11admin                      jfs2              /admin
220-220      used        center                hd8                                  jfs2log        N/A
221-239      used        center                hd2                                  jfs2              /usr
240-243      used        center                hd9var                            jfs2              /var
244-323      used        center                hd3                                  jfs2              /tmp
324-324      used        center                hd1                                 jfs2              /home
325-328      used        center                hd10opt                          jfs2              /opt
329-330      used        inner middle    hd4                                  jfs2              /
331-437      free        inner middle                                                                  
438-464      free        inner edge                                                                       
465-504      used        inner edge        testlv                            jfs2              /test
505-546      free        inner edge    
 

/oracle 文件系统已经全部位于out edge中了,选择/oracle /tmp /test 进行测试:


先对outer edge进行测试:
#time dd if=/dev/zero of=/oracle/test bs=1024k count=4096   
real        0m46.03s
user        0m0.03s
sys          0m11.36s
消耗时间为:46.03秒
Topas监控到的磁盘IO 为88.6M
 
 
接着对center进行测试:
#time dd if=/dev/zero of=/tmp/test bs=1024k count=4096
real        0m53.29s
user        0m0.02s
sys          0m12.16s
消耗时间为:53.29s秒
Topas监控到的磁盘IO 为77M
 
    最后看下inner edge:
 #time dd if=/dev/zero of=/test/test bs=1024k count=4096   
real        1m5.75s
user        0m0.02s
sys          0m12.43s

消耗时间为:1分5.75秒

Topas监控到的磁盘IO 只有62M  


    由此看出,对于顺序读写,Outer edge的确有很大的优势。 再来做一个测试,将oracle的lv拆分到多个区域,进行测试,类似如下:
# for i in    2 3 4 5 6 7 8 9  
> do migratelp fslv01/$i hdisk1/33$i
> done
migratelp: Mirror copy 1 of logical partition 2 of logical volume
                fslv01 migrated to physical partition 332 of hdisk1.
migratelp: Mirror copy 1 of logical partition 3 of logical volume
                fslv01 migrated to physical partition 333 of hdisk1.
migratelp: Mirror copy 1 of logical partition 4 of logical volume
                fslv01 migrated to physical partition 334 of hdisk1.
migratelp: Mirror copy 1 of logical partition 5 of logical volume
                fslv01 migrated to physical partition 335 of hdisk1.
migratelp: Mirror copy 1 of logical partition 6 of logical volume
                fslv01 migrated to physical partition 336 of hdisk1.
migratelp: Mirror copy 1 of logical partition 7 of logical volume
                fslv01 migrated to physical partition 337 of hdisk1.
migratelp: Mirror copy 1 of logical partition 8 of logical volume
                fslv01 migrated to physical partition 338 of hdisk1.
migratelp: Mirror copy 1 of logical partition 9 of logical volume
                fslv01 migrated to physical partition 339 of hdisk1. 


查看下/oracle 文件系统的pp分布:


#lspv -p hdisk1
hdisk1:
PP RANGE    STATE      REGION                LV NAME                          TYPE              MOUNT POINT
  1-1          used        outer edge        hd5                                  boot              N/A
  2-36        free        outer edge                                                                      
  37-59        used        outer edge       fslv01                            jfs2              /oracle
  60-66        free        outer edge                                                                      
  67-84        used        outer edge       fslv01                            jfs2              /oracle
  85-86        free        outer edge                                                                      
  87-102      used        outer edge       fslv01                            jfs2              /oracle
103-110      used        outer edge        lg_dumplv                      sysdump        N/A
111-210      used        outer middle    hd6                                  paging          N/A
211-211      used        outer middle    fwdump                            jfs2              /var/adm/ras/platform
212-213      used        outer middle    livedump                        jfs2              /var/adm/ras/livedump
214-218      used        outer middle   fslv01                            jfs2              /oracle
219-219      used        outer middle    hd11admin                      jfs2              /admin
220-220      used        center                hd8                                  jfs2log        N/A
221-239      used        center                hd2                                  jfs2              /usr
240-243      used        center                hd9var                            jfs2             /var
244-323      used        center                hd3                                  jfs2              /tmp
324-324      used        center                hd1                                  jfs2              /home
325-328      used        center                hd10opt                          jfs2              /opt
329-330      used        inner middle    hd4                                 jfs2              /
331-339      used        inner middle   fslv01                            jfs2              /oracle
340-437      free        inner middle                                                                  
438-464      free        inner edge                                                                      
465-504      used        inner edge        testlv                            jfs2              /test
505-510      free        inner edge                                                                      
511-519      used        inner edge       fslv01                            jfs2              /oracle
520-546      free        inner edge
 
  /oracle 目录被分配到了4个区域,测下顺序IO:
#time dd if=/dev/zero of=/oracle/test bs=1024k count=4096   
real        0m53.32s
user        0m0.02s
sys          0m12.60s
IO 速度有所下降。如果是随机IO,磁盘头进行的寻道时间会大大的增加,IO 的速率就会受到很大的影响。


优化规则:

  通过以上的磁盘寻道原理和AIX的LVM磁盘管理方式,优化本地磁盘应该遵循以下规则:

 1. 让  LV 尽可能保持连续。当文件系统数据分散在一个磁盘上时,硬盘头需要花费更长的时间在寻道时间和旋转延迟上。如果  LV 存在于一个连续的区域,会最大程度地缩短搜索时间,更快地找到文件。这就要求最好是一次性建好足够大的LV,而不是经常去扩空间。

2. 将具有高  I/O、顺序读取或写入操作的  LV 放在外侧边缘。由于磁盘外侧边缘的速度因素,如果  LV 需要更快读取或写入较长序列(比如大型静态文件或数据表内容)中的数据,外侧边缘的更高旋转速度会有所帮助。   
3.将具有高活跃度的  LV 放在靠近中心位置。如果您有一个文件系统具有大量读取和写入操作,并且需要快速响应,尽量分布在中心附近。如果空间足够将swap空间也放在该区域。   
4.将使用率较低的  LV 放在内部边缘附近。如果您的文件系统很少使用或访问,那么可以将它们放在具有最低  I/O 速度的磁盘区域内(内部边缘上接近主轴的区域)。例如,很少使用的逻辑卷很适合放在这里。   
5.  当存在多个swap 分区时,一块磁盘最好只分配一个swap分区,而且大小要相等,从而减少跨区域的lv操作,增大IO 负担。
6.如果可能将两个磁盘分别创建一个独立的分页空间 LV,那么每个磁盘均可解决内存交换,效率将会翻倍。   
7.尽可能分散  I/O 负载,以提高性能和冗余。如果您有一个较大的系统具有多个硬盘,可以通过将数据分散在一组磁盘组合中开利用它们。如果您选择镜像您的  PV,可以在多个硬盘上这么做,以便如果一个磁盘抽屉(drawer)出现故障,冗余不会限制到一个硬盘。参考参数range of physical volumes(minimum、maximum)
 
磁盘优化的常用工具:

 

查看工具:

1.  使用lsvg 查看VG的信息

查看所有的VG

#lsvg

查看激活的VG

#lsvg –o

查看VG的总体信息:

#lsvg rootvg

查看VG中lv的信息

# lsvg -l rootvg 

查看VG在PV中的分布

 #lsvg –p rootvg

2.lspv用来查看某块磁盘的信息,如PVID、PP的大小、包含的LV数目、5个区域中PP的使用情况等等。如:

查看PV总体信息:

# lspv -L hdisk1

 查看PV中LV的LPs、PPs、以及5个区域的总体分布大小

# lspv -l hdisk1  

详细查看PV中每个PP的使用情况:

#lspv –p hdisk1
 

3.  lslv用来查看某个LV的特征、状态以及其PPs在PV中的详细分布

查看LV的总体信息:

#lslv –L fslv01

查看LV在PV中的分布信息:

#lslv –p hdisk1 fslv00

查看LV的镜像在各个磁盘上的分布

#lslv –l fslv00

查看LV的LP对应的PP的分布信息

#lslv –m fslv00
 
迁移工具:

1.  chlv、smit  chlv用来更改LV的属性,及PP在PV上的分布,使得LV的PP尽可能变的连续。

#chlv   -a e  -e x  -r y  -s n  -u 5 fslv00
 

2.  migratepv用来迁移PV上的LV到其他PVs上 比如将hdisk1上的LV迁移到hdisk6和hdisk7上

#migratepv hdisk1 hdisk6 hdisk7

将lv01 从hdisk1迁移到hdisk6

#migratepv –l lv01 hdisk1 hdisk6

 

3.  migratelp用来迁移LV上的某个lp到指定的PV的pp上

比如将lv01 上的第一个LP迁移到  hdisk1上的第100个PP上

#migratelp lv01/1 hdisk1/100

将lv01 上的第3个LP的第二个镜像拷贝迁移到hdisk1上

#migratelp lv01/3/2 hdisk1


4.    mirrorvg和unmirror

将vg生成3份镜像

#mirrorvg -c 3 datavg

生成默认镜像(2份)

#mirrorvg    datavg

更换镜像的坏盘

#unmirrorvg datavg hdisk7

#reducevg datavg hdisk7

#rmdev -dl hdisk7  

#extendvg datavg hdisk7

#mirrorvg    datavg hdisk7

在指定的PV上生成镜像

#mirrorvg -m   datavg hdisk2  

将镜像工作放入后台运行

#mirrorvg –S   workvg
 

5.  Mklvcopy 用来单独将某个LV进行复制

比如将lv01 在hdisk1的middle区域创建一个镜像

#mklvcopy –a m –m lv01   hdisk1 


6.  reorgvg [-i],-i 参数用于3块以上PV重组,在重组时,临时文件存放在/tmp目录下确保/tmp目录的空间大小。

重组整个vg

#reoravg rootvg

重组指定LV

#reoravg rootvg lv01 lv02 v03

重组指定PV上的LV

#echo "hdisk4 hdisk6" | reorgvg -i vg02 lv203 lv205
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值