首先,来介绍一下什么是Quick I/O合Cached Quick I/O。VERITAS Quick I/O是VXFS为oracle数据库提供的一种特殊的功能。数据库和文件系统有机的整合在一起同时更好的帮助系统管理员和数据库管理员进行oralce数据库服务器的配置。同时,VERITAS Quick I/O还为普通文件的创建提供裸设备接口。它避开了一定得文件系统开销的操作方式(比如:数据锁层面的操作)同时提供kernel的异步I/0(KAIO),因此,Quick I/O为文件系统管理和裸设备性能方面带来的便捷。Cached Quick I/O是一种增强型Quick I/O,它能够帮助oracle DBA更好的使用大系统内存的效率。
换句话来说,传统的文件系统,由于对文件的single write lock存在,导致文件系统在并发环境中读写效率比较低。而裸设备则不存在这个问题。Quick I/O其实就是消除了单写锁,提高文件系统的效率。
Cached Quick I/O是对Quick I/O的一种增强处理,核心的思想就是不断的记录访问的文件的频度,将最热的文件放在cache中,提高cache的命中率,从而提高文件系统的效率。
使用Cached Quick I/O可以更好的在文件系统下运行数据库。
能够方便的提供系统生产环境下的文件I/O统计。
收集在用文件的文件I/O统计。
使用Cached Quick I/O能够方便的分析文件的I/O统计。
不使用Cached Quick I/O在命中率上差异较大。
可以简单的理解这两个特性:
1)Quick I/O解决的是传统的unix文件系统的single write lock问题。
2)Cached Quick I/O解决的是cache的命中率问题。
先来介绍一下Quick I/O。
首先确认使用的文件系统是vxfs。这是VERITAS storage foundation的特性。
需要购买veritas license
使用veritas提供的脚本来创建需要转化的数据文件列表
$/opt/VRTSdbed/bin/qio_getdbfiles执行该脚本可以将vxfs下所有需要转化的数据文件都输出到mkqio.dat文件中。脚本目录在/opt/VRTSdbed/bin。在老的版本中这个脚本名称为:getdbfiles.sh.
这个脚本会自动排除所有类型为temproary的数据文件。这些文件在转化之后,oracle将无法进行写入。
mkqio.dat文件也可以自己手工创建。但必须要注意排除temporary datafiles。文件中包含数据文件和大小,样例如下:
$cat mkqio.dat
/db01/file1 210358
/db01/file2 157996
/db01/file3 38098
/db01/file4 394935
/db01/file5 911787
/db01/redo_t04.log 209715
在上面的过程中,数据库需要打开。
$/opt/VRTSdbed/bin/qio_convertdbfiles,执行该脚本转化mkqio.dat列表中的数据文件。在老的版本中这个脚本名称为:mkqio.sh
在转化之前,必须先关闭数据库。
这些脚本都以oracle用户执行。
那么现在再来说如何启动Cached Quick I/O呢?可以通过使用命令vxtunefs命令将qio_cache_enable标志改为1来设定。命令如下:
# vxtunefs -s -o qio_cache_enable=1 /mount_point
比如:
# /opt/VRTSvxfs/sbin/vxtunefs -s -o qio_cache_enable=1 /happy
vxfs vxtunefs: Parameters successfully set for /happy
接下来看如何关闭Cached Quick I/O呢?可以通过使用命令vxtunefs命令将qio_cache_enable标志改为0来设定。命令如下:
# vxtunefs -s -o qio_cache_enable=0 /mount_point
比如:
# /opt/VRTSvxfs/sbin/vxtunefs -s -o qio_cache_enable=0 /happy1
vxfs vxtunefs: Parameters successfully set for /happy1
如果想让Cached Quick I/O设置固定不受重启的影响,就需要在/etc/vx/tunefstab文件下面增加qio_cache_enable条目。
如果tunefstab不存在的话,需要手工加一个就可以了。
举例:
/dev/vx/dsk/datadg/datavol qio_cache_enable=1
/dev/vx/dsk/datadg/myvol qio_cache_enable=1
可以通过vxtunefs命令来查看Cached Quick I/O的情况。
命令如下:
# vxtunefs /mount_point
举例:
# /opt/VRTSvxfs/sbin/vxtunefs /happy
Filesystem i/o parameters for /happy
read_pref_io = 65536
read_nstream = 1
read_unit_io = 65536
write_pref_io = 65536
write_nstream = 1
write_unit_io = 65536
pref_strength = 10
buf_breakup_size = 131072
discovered_direct_iosz = 262144
max_direct_iosz = 1048576
default_indir_size = 8192
qio_cache_enable = 1
write_throttle = 15104
max_diskq = 1048576
initial_extent_size = 8
max_seqio_extent_size = 2048
max_buf_data_size = 8192
hsm_write_prealloc = 0
# /opt/VRTSvxfs/sbin/vxtunefs /happy1
Filesystem i/o parameters for /happy1
read_pref_io = 65536
read_nstream = 1
read_unit_io = 65536
write_pref_io = 65536
write_nstream = 1
write_unit_io = 65536
pref_strength = 10
buf_breakup_size = 131072
discovered_direct_iosz = 262144
max_direct_iosz = 1048576
default_indir_size = 8192
qio_cache_enable = 0
write_throttle = 15104
max_diskq = 1048576
initial_extent_size = 8
max_seqio_extent_size = 2048
max_buf_data_size = 8192
hsm_write_prealloc = 0
同时还可以为个别文件设置Cached Quick I/O。使用qioadmin命令来设置文件的Cached Quick I/O。使用qiostat或者其他的分析工具来分析文件的Cached Quick I/O。当打开和关闭个人文件的Cached Quick I/O时,需要数据库是运行的。通过使用qiostat命令来观察文件的缓存命中率是否发生足够的改变打开或者关闭Cached Quick I/O对于个人文件也需要考虑设置cache.
关闭个人文件的Cached Quick I/O使用qioadmin命令设置标志位OFF。
命令如下:
# qioadmin -S file=OFF mount_point
举例:
# /opt/VRTSvxfs/sbin/qioadmin -S myfile=OFF /happy
打开个人文件的Cached Quick I/O使用qioadmin命令设置标志位ON。
命令如下:
# qioadmin -S file=ON mount_point
举例:
# /opt/VRTSvxfs/sbin/qioadmin -S myfile=ON /happy
如果想让设置一直生效不受重启的影响需要在文件/etc/vx/qioadmin下增加相应的条目。
如果这个文件不存在,可以手工添加上去。
cache建议使用qioadmin来存储时需要加上Inode属性。这些设置可以在重新mount和系统重启中一直生效,但是,这些属性通过一般的备份方法并不能被备份。他们是不能恢复的,因此,任何一次文件系统的恢复都需要重新设置属性。如果在/etc/vx/qioadmin增加了Quick I/O文件系统条目的话,这些工作可以不需要做。
/etc/vx/qioadmin的文件内容如下:
以happy文件系统为例:
device=/dev/vx/dsk/datadg/datavol
myfile, OFF
mydata, ON
可以通过是使用qioadmin命令的-P选项来查看现在文件的Cached Quick I/O情况。
命令如下:
# qioadmin -P file mount_point
例如:
# /opt/VRTSvxfs/sbin/qioadmin -P myfile /happy
myfile,OFF
# /opt/VRTSvxfs/sbin/qioadmin -P mydata /happy
mydata,ON
阅读(968) | 评论(0) | 转发(0) |