Solaris10如何确认DirectIO是否已经启用
对于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
^C
ufs`lufs_write_strategy+0x100
ufs`ufs_putapage+0x501
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
4
ufs`lufs_write_strategy+0x100
ufs`ufs_putapage+0x4f1
genunix`pvn_vplist_dirty+0x3aa
ufs`ufs_putpages+0x1c2
ufs`ufs_putpage+0x82
genunix`fop_putpage+0x28
ufs`ufs_fsync+0x1c4
genunix`fop_fsync+0x28
genunix`fdsync+0x28
unix`sys_syscall+0x17b
20
系统调用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
^C
ufs`directio_start+0x12c
ufs`ufs_directio_write+0x788
ufs`ufs_write+0x383
genunix`fop_write+0x31
genunix`pwrite+0x14f
unix`sys_syscall+0x17b
39
系统调用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
^C
ufs`directio_start+0x12c
ufs`ufs_directio_write+0x788
ufs`ufs_write+0x383
genunix`fop_write+0x31
genunix`pwrite+0x14f
unix`sys_syscall+0x17b
17
系统调用ufs_directio_write, 表示启用了directio.
Solaris10如何确认DirectIO是否已经启用的更多相关文章
- TCP Nagle算法&&延迟确认机制
TCP Nagle算法&&延迟确认机制 收藏 秋风醉了 发表于 3年前 阅读 1367 收藏 0 点赞 0 评论 0 [腾讯云]买域名送云解析+SSL证书+建站!>>> ...
- Nagle算法&&延时确认
数据流分类 成块数据 交互数据 Rlogin需要远程系统(服务器)回显我们(客户)键入的字符 数据字节和数据字节的回显都需要对方确认 rlogin 每次只发送一个字节到服务器,而Telnet 可以 ...
- TCP Nagle算法以及延迟确认(即延迟回复ACK)的学习
TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认.为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据. (一个连TCP接会 ...
- 详细介绍Mysql各种存储引擎的特性以及如何选择存储引擎
最近业务上有要求,要实现类似oracle 的dblink linux版本 Server version: 5.6.28-0ubuntu0.14.04.1 (Ubuntu) 修改配置文件 /etc/ ...
- ASP.NET Identity V2
Microsoft.AspNet.Identity是微软在MVC 5.0中新引入的一种membership框架,和之前ASP.NET传统的membership以及WebPage所带来的SimpleMe ...
- 缓存Cache
转载自 博客futan 这篇文章将全面介绍有关 缓存 ( 互动百科 | 维基百科 )cache以及利用PHP写缓存caching的技术. 什么是缓存Cache? 为什么人们要使用它? 缓存 Cach ...
- php绘图问题
php绘图首先要确认gd库是否启用,到php.ini文件中,找到extension=php_gd2.dll将前面的:去掉,重新启动服务器. 如果在绘图中还是没有显示正常的图片,说明服务器在回复请求时, ...
- Mysql日志操作
Mysql日志 mysql的日志类型:错误日志: -log-err记录mysql服务的启动.运行.停止mysql服务时出现的问题查询日志: -log记录建立的客户端连接和执行的语句慢查询日志: -lo ...
- mysql配置详解
mysql有以下几种日志: 错误日志: log-err 查询日志: log 慢查询日志: log-slow-queries 更新日志: log-update 二进制日志: ...
随机推荐
- Java C++ 比较 – 虚函数、抽象函数、抽象类、接口
[转自]原文 Java – 虚函数.抽象函数.抽象类.接口 1. Java虚函数 虚函数的存在是为了多态. C++中普通成员函数加上virtual关键字就成为虚函数 Java中其实没有虚函数的概念,它 ...
- ViewPagerAdapter 示例
package com.ali.fridge.supermarket.module; /** * Created by xiaomin.wxm on 2016/3/7. */ import and ...
- BZOJ3244/UOJ122 [Noi2013]树的计数
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- wpf数据绑定的论述
(1)绑定模式: <Lable x:Name=lab Content={binding UserName} /> <!--binding相当于SetBinding--> Con ...
- 搭建svn服务器小结
最开始是用VisualSVN-Server来搭建服务器的,某一天安装了eset杀毒软件后,发现不能用了,每次打开配置页时报错.Visualsvn server 0x80070005 百度搜索,找到相同 ...
- Node.js模块、包的学习笔记
什么是模块 模块是node应用程序的基本组成部分,文件和模块是一一对应的,就是说,一个node文件就是一个模块,这个文件可能是javascript代码.json或者是编译过的c++扩展等,如: var ...
- hdu 3410 单调栈
http://acm.hdu.edu.cn/showproblem.php?pid=3410 Passing the Message Time Limit: 2000/1000 MS (Java/Ot ...
- mysql 注意事项
1. mysql所有的存储引擎均不支持check约束,但可以使用check约束,而没有任何效果
- (转)Java发送http请求(get 与post方法请求)
本文转载于:http://bijian1013.iteye.com/blog/2166855 package com.bijian.study; import java.io.BufferedRead ...
- 剑指offer--4.斐波那契数列
int最大范围(有符号情况下,从第0项0开始)能取到第46项1836311903,47项溢出 时间限制:1秒 空间限制:32768K 热度指数:473928 题目描述 大家都知道斐波那契数列,现在要求 ...