对于Oracle而言,如果数据库存储在UFS文件系统上,启用DirectIO能够提高数据库性能。Oracle有个参数filesystemio_options可以控制数据库是否使用DirectIO.  如果在Oracle已经设置了使用DirectIO,怎样才能确认DirectIO是否真起作用了呢?在Solaris10上,可以通过dtrace来确认DirectIO是否已经启用。

1. DirectIO未启用的情况

检查filesystemio_options参数设置

SQL> show parameter filesystem NAME TYPE VALUE ------------------------------------ -------------------------------- ------------------------------ filesystemio_options string ASYNCH

ASYNCH表示数据库只启用了异步IO, 没有启用DirectIO.

Dtrace检查控制文件是否启用DirectIO

root@ofs001 # dtrace -n io:::start'/(args[0]->b_flags & B_READ) == 0 && args[2]->fi_pathname == "/oracle/data1/ACC010C1/control01.dbf"/{@[stack()] = count()}' dtrace: description 'io:::start' matched 6 probes ^C ufs`lufs_write_strategy+0x100 ufs`ufs_putapage+0x4f1 ufs`ufs_putpages+0x308 ufs`ufs_putpage+0x82 genunix`fop_putpage+0x28 genunix`vpm_sync_pages+0xa3 ufs`wrip+0x6f7 ufs`ufs_write+0x211 genunix`fop_write+0x31 genunix`pwrite+0x14f unix`sys_syscall+0x17b 44

系统调用了ufs_write, 表示DirectIO未启用

Dtrace检查数据文件是否启用DirectIO

在一个session上执行dtrace命令,另一session执行一个create table … as select * from xx;的命令.

root@ofs001 # dtrace -n io:::start'/(args[0]->b_flags & B_READ) == 0 && args[2]->fi_pathname == "/oracle/data2/ACC010C1/users01.dbf"/{@[stack()] = count()}'
dtrace: description 'io:::start' matched 6 probes
^Cufs`lufs_write_strategy+0x100ufs`ufs_putapage+0x501ufs`ufs_putpages+0x308ufs`ufs_putpage+0x82genunix`fop_putpage+0x28genunix`vpm_sync_pages+0xa3ufs`wrip+0x6f7ufs`ufs_write+0x211genunix`fop_write+0x31genunix`pwrite+0x14funix`sys_syscall+0x17b4ufs`lufs_write_strategy+0x100ufs`ufs_putapage+0x4f1genunix`pvn_vplist_dirty+0x3aaufs`ufs_putpages+0x1c2ufs`ufs_putpage+0x82genunix`fop_putpage+0x28ufs`ufs_fsync+0x1c4genunix`fop_fsync+0x28genunix`fdsync+0x28unix`sys_syscall+0x17b20系统调用ufs_write, 表示DirectIO未启用

2. DirectIO启用的情况

检查filesystemio_options参数设置

SQL> show parameter filesystem NAME TYPE VALUE ------------------------------------ -------------------------------- ------------------------------ filesystemio_options string SETALL

SETALL表示数据库同时启用了异步IO和DirectIO.

Dtrace检查控制文件是否启用DirectIO

root@ofs001 # dtrace -n io:::start'/(args[0]->b_flags & B_READ) == 0 && args[2]->fi_pathname == "/oracle/data1/ACC010C1/control01.dbf"/{@[stack()] = count()}'
dtrace: description 'io:::start' matched 6 probes
^Cufs`directio_start+0x12cufs`ufs_directio_write+0x788ufs`ufs_write+0x383genunix`fop_write+0x31genunix`pwrite+0x14funix`sys_syscall+0x17b39系统调用ufs_directio_write, 表示启用了directio.

Dtrace检查数据文件是否启用DirectIO

在一个session上执行dtrace命令,另一session执行一个create table … as select * from xx;的命令.

root@ofs001 # dtrace -n io:::start'/(args[0]->b_flags & B_READ) == 0 && args[2]->fi_pathname == "/oracle/data2/ACC010C1/users01.dbf"/{@[stack()] = count()}'
dtrace: description 'io:::start' matched 6 probes^Cufs`directio_start+0x12cufs`ufs_directio_write+0x788ufs`ufs_write+0x383genunix`fop_write+0x31genunix`pwrite+0x14funix`sys_syscall+0x17b17系统调用ufs_directio_write, 表示启用了directio.

转载于:https://www.cnblogs.com/cqubityj/p/3666775.html

Solaris10如何确认DirectIO是否已经启用相关推荐

  1. Lync Server外部访问系列PART6:启用外部访问

    我们之前所做的所有工作都是用来对我们外部访问的准备,但是准备就绪不意味着功能已启用,为什么?因为我们为了Lync Server搭建好了到公网的水管,可是我们还没有将水管的阀门打开.而Lync不仅可以很 ...

  2. Nagle算法延时确认

    数据流分类 成块数据 交互数据 Rlogin需要远程系统(服务器)回显我们(客户)键入的字符 数据字节和数据字节的回显都需要对方确认   rlogin 每次只发送一个字节到服务器,而Telnet 可以 ...

  3. ha-sync-mode_如何启用,优化和调整NVIDIA G-Sync

    ha-sync-mode If you have an NVIDIA graphics card and monitor that both support NVIDIA G-Sync, you ca ...

  4. win10c语言如何粘贴,如何在Windows 10中启用剪贴板历史记录

    Windows 10具有OS中大量的功能;剪贴板历史记录就是这样的功能之一,有些人发现它很有用,而其他人则没有那么多. 它已经存在了大约一年,但是如果您没有使用过,这里有一个教程. Windows剪贴 ...

  5. upgrade lnmpa php.sh,LNMP 状态管理命令说明及Nginx、MySQL/MariaDB、PHP升级教程

    状态管理命令分 LNmp状态管理命令 和 LNmpA状态管理命令,LNMPA代表的是Linux下Nginx.MySQL.PHP.Apache这种网站服务器架构,是结合LAMP与LNMP各自的优点而产生 ...

  6. 如何找回丢失的Vista系统“休眠”菜单

    如何让Vista系统"休眠"菜单重见天日一些使用Windows Vista的朋友为了节省磁盘空间,在命令提示符下使用命令关闭休眠功能.但是如果再用相同的方法打开休眠功能时,就会发现 ...

  7. 多数据中心的百万级消息服务实战

    背景 利用RabbitMQ集群横向扩展能力,均衡流量压力,让消息集群的秒级服务能力达到百万,Google曾做过此类实验:有货在某些推送场景下也做了类似尝试,在此对此前实践经验以及踩得坑做些总结工作. ...

  8. 网络服务-VSFTP

    文章目录 一.VSFTP 概述 1.1 安全特性 二. VSFTP 连接类型 三.VSFTP 工作模式 Port模式(主动) Passive 模式(被动) 四.VSFTP 传输模式 五.VSFTP 软 ...

  9. MySQL FEDERATED引擎使用示例, 类似Oracle DBLINK

    原文地址:http://it.dataguru.cn/article-3352-1.html 摘要: 本地MySQL数据库要访问远程MySQL数据库的表中的数据, 必须通过FEDERATED存储引擎来 ...

最新文章

  1. 数据恢复软件extundelete介绍
  2. 【专利】检索网站到底哪个能用?
  3. 1. Visio Web 形状 - 无法与 Web 服务器建立连接。请稍后重新进行搜索。处理方式...
  4. java outlook 发送邮件_基于java使用JavaMail发送邮件
  5. double类型问题
  6. linux mcelog 运行,服务器硬件检测(采用mcelog)
  7. cifar10数据集测试有多少张图_pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)...
  8. DataList控件DataKeyField以及DataKeys区别
  9. 句句真研—每日长难句打卡Day1
  10. kubectl命令大全
  11. 【收藏】韦东山嵌入式Linux课程梳理|随时更新
  12. 三维扫描仪在工艺品摆件中的应用
  13. linux 网络重组 分片 gso lro
  14. 通过.frm和.idb文件恢复mysql数据库
  15. P5200 Sleepy Cow Sorting(树状数组,模拟)
  16. 对物联网的感悟_物联网心得体会总结
  17. 怎么才能画出漂亮的思维导图
  18. Primitives vs Objects
  19. 【模电学习笔记①】静态工作点的设置、截止失真和饱和失真
  20. 基于2D-3D直线对应关系的单目摄像机定位

热门文章

  1. java使用cxf调用https方式的webservice
  2. 人工智能为教育创新赋能,开启教学新模式
  3. 求矩阵特征值和特征向量
  4. 【若依RuoYi短信验证码登录】汇总
  5. Go 语言中的字符串拼接
  6. Origin开源替代工具 ——QtiPlot和SciDAVis
  7. 关于游戏陪玩系统源码后台管理系统前端项目的思考
  8. 会计专业为什么要学python-财务人要学Python吗?
  9. 第60讲:MySQL视图的综合使用案例
  10. FP、FCP、FMP、LCP都是什么P?