关于 Oracle 的 IO 响应能力: 10 毫秒的来历

最近在 ITpub 上有几个讨论 IO 的帖子很热闹,其中一个讨论中 Biti 说”响应时间在 10ms 左右能达到的最大 IOPS 能力,是系统 IO 能力的一个最重要指标” ,下面好多网友不知道这个 10ms 怎么来的,以及为什么是 10ms .

其实如果你熟读 Oracle 手册的话,你会发现 10g 中已经涉及到这个 “10ms” 的信息了,而且,侧面透漏出很多潜在的细节。

在 Oracle 10g 中有一个新的参数: DBIO_EXPECTED ,这个参数指 DB 平均读取一个 数据库块的时间,单位是毫秒(millisecond)。由 ADDM( Automatic Database Diagnostics Monitor)用以分析系统 IO 性能的参考值。默认是 10ms ,之所以取这个值,是因为当前企业内投入使用的硬盘(存储)一般一个 IO 时间(读取一个 DB 块)大约在 10 ms 之下,超出 10 ms 一般意味着在 IO 跑得有点费劲了。这个 10ms 是个经验值,但这个经验值是有来由的。

有些慢速硬盘,比如希捷 Barracuda® ES.2,寻道时间接近 10毫秒,一些老一点的 SATA 盘肯定更慢了;而 Cheetah® 15K.5 则大约只是 3ms-4ms 的样子(DBA没事的时候不妨看看硬盘厂商的白皮书,挺好玩的)。一个 DB 系统上线时,测试一下 IO 基准能力还是必要的。注意测试的时候出现的”拐点”,意味着这个时候的 IO 响应时间是至关重要的,因为这个时候 IO 即使有应用Cache、 数据库 Cache、(主机 Cache)、存储 Cache,也还是有大量 IO 压在了后面的磁盘上,如果磁盘的 IO 到了峰值,IO 层的能力也就到了峰值了(特定响应时间下的最大 IOPS)。多数系统上,应该在 10ms 附近。所以,你盯着 DB 上离散读的平均响应时间,到了 10ms 意味着快撑不住了。

要如实使用 ADDM 衡量 IO 状况,DBIO_EXPECTED 参数还是需要作一点调整的。要注意这个参数并不是初始化参数,如果需要重新设定,则需要提交如下语句修改:

EXECUTE DBMS_ADVISOR.SET_DEFAULT_TASK_PARAMETER('ADDM', 'DBIO_EXPECTED', 4000);

上面的数值单位是微秒。

数据库 IO 是一个非常有意思的话题,本来想写一系列的东西。结果这篇写出来发现不伦不类。权作抛砖吧。

EOF

年底当心小偷

今天又有同事遭遇小偷了,幸运的是小偷没得手。后来同事跟我说,那两个小偷在他后面还跑的气喘吁吁,估计跟着他跑了一条街才找机会下手,做小偷也不容易,看人家多敬业! 下午的时候,合作伙伴的朋友来访,告诉我他的 iPhone 前几天在车上丢了。再前一段时间也有个同事差点在路口被抢走 iPhone。

其实最近一段时间,已经有不少同事不断爆料,就在公司楼下,小偷异常猖獗。快到了明抢的地步了。

这一切说明了什么? 快过年了,小偷也想捞一票回家啊!

杭州本地小偷似乎不多,多数都是从外地杀进来的,据说看面貌很像维族兄弟,我相信维族兄弟们绝大多数是善良的,但是不乏也有少数败类败坏了维族同胞声誉。提及“维族”很容易被误解为民族歧视(如果说新疆人更有人不愿意听,说中国人、黄种人的话还没人知道具体特征),别误会,汉族里的小偷数量肯定更他妈的多,我当年在东北老家就被家乡人民偷了一次呢,但个体不能代表全体。小偷都是类似的,只有被偷的人才是不同的。

元旦,春节,也算小偷的两个黄金周了,一年就赶着这段时间出活呢,所以大家多加一点小心。走在路上,把包背在身前,这样子有点傻,但也比丢了东西强。上天桥、过马路,手最好在口袋里抓着手机、按着钱包,即使现在手机便宜,可丢了的话,联系人重新输入不也是挺麻烦? 要是里面有个隐私啥的就更不好办了。

愿天下无贼!

EOF

此文作者:, 位于 Review 分类 标签: , on .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.

年度回顾:2007 年最常用的 Web 2.0 服务

2007 年就快过去了。这一年中, Web 2.0 应用对我的网络生活影响程度更大了一点。回顾一下,除了过去经常用的 del.icio.us、Flickr 等”老一辈“的 Web 2.0 服务外, 今年新熟悉了几个 Web 2.0 服务。

Twitter — Micro-blogging Service

截止到写这篇 Blog 为止,我在 Twitter 上有超过 1000 条更新,Followers 接近 250 个。算得上是个中度用户,中毒还不算深。

Twitter 刚上手不知道怎么玩,但是玩起来还有点容易上瘾。必须要承认 Twitter 是个时间杀手,我过去也担心这东西带来的信息过载,有的时候会有比较大的信息噪音,比如那些绑定了 Feed 到 Twitter 上的朋友,对于 Feed 通知更新太频繁的我都屏蔽掉了,现在尽管每天接收大量 Twitter 的 Updates ,但总体感觉信息还是比较有质量。

顺便说一下,我用 TwitterFox 这个 Firefox 插件。用 IM 收发更新容易受到被动干扰。有些担心有一天 Twitter 会被阻尼,但我不打算用国内的克隆版,使用这些 服务也是为了体验创新的产品设计。

LinkedIn — SNS Service , Business-oriented

在尝试 LinkedIn 之前,我是若邻 (Wealink.com) 的用户,但若邻的整体用户氛围现在非常让我比较反感,尤其是很多人打着”猎头”的头名来套瓷,还有社区内的很多人一天到晚的转发帖子,信息噪音太大了。LinkedIn 上的用户还是比较规矩的,没事也没人来干扰你。

LinkedIn 是《连线》杂志评选的 2008年十大最值得关注创业公司,符合我要用就用同类站点中最好的习惯,你总不想某天找不到自己辛苦积累的信息吧? 之所以起用 LinkedIn 这样的服务,还是觉得有必要积累一点个人资本,认识一些国内外业内的朋友,互相通通气。我在 LinkedIn 上的 Profile 连接超过了 75 个,估计还能逐渐增加一些,话说回来,LinkedIn 上 Google 的员工,平均每人也只有 47个联系人“。车东在上面有超过 500 个连接,可以作猎头了。

其实面临求职的朋友不妨在 LinkedIn 或者类似的服务上维护一份自己的简历,事半功倍。

其他的 SNS 服务,如 MySpace 或者是 Facebook ,我不打算用。没那个精神头了。

Google Reader — Information Gateway

自从 Feedburner 被阻尼了之后,不得不抛弃客户端工具 GreatNews,而起用在线 RSS 阅读工具,另外一个考虑是性能问题,订阅 Feed 超过 1000 个后,GreatNews 更新非常消耗本地资源。虽然抓虾也不错,但我基本上是用抓虾看看热文,大部分的阅读还是在 Google Reader 内,看到不错的文章就 Share 一下,通过 RSS 集成到 CNOUG.net 上,便于 DBA 圈子内的其他朋友也及时看到,共享嘛。

Google Reader 最近的好友间阅读共享功能也很有意思,虽然多数人都在质疑这个功能有泄漏隐私之嫌。我个人觉得可以通过算法来调整这个设计上的漏洞。Google 不是一项强调数据说话麽? 那就来点更智能化的东西吧。

这两天也在尝试 Soup.ioFriendFeed 这两个东西,直觉中明年要启用其中的一个。你在去年尝试并喜欢那些 Web 2.0 服务? 说一下吧

EOF

书评《Oracle 9i & 10g 编程艺术》

Expert_Oracle_Database_Arch.jpg

这是一篇迟到的非标准书评。收到人邮社刘江老师寄来的《Oracle 9i & 10g 编程艺术》好久了,只不过绝大多数时间这本书都不在我手旁,也就没时间读完。好多同事抢去看,此书受欢迎程度可见一斑。

去年我就曾经写过一篇关于这本书的小道消息Thomas Kyte 大叔 早年被引入的 Oracle Expert one-on-one(《Oracle专家高级编程》)可以算得上对国内 DBA 圈子影响最大的一本图书,在市场上也销售得不错。不过那本书的一大问题是翻译质量比较糟糕,副作用是带来了不少辞不达意的翻译术语,比如”封锁”,该书糟糕的装帧质量也让不少读者比较痛苦,好多人都是干脆把书拆开,自动分成上下两册来看。

我曾经给刘江老师出过不少馊主意,其中最馊的一个就是怂恿他干脆重新出版一次《Oracle专家高级编程》(因为那时候 Wrox 的大部分图书都到了 APress 的旗下,版权是能搞定的),但他担心该书出版的时间太久,市场上没有后劲了,也就作罢。因为我一直订阅 Tom 的 Blog, 也算是第一时间知道他在进行新书的写作,就把这个消息通知了刘江,英文版本出版后没多久,刘老师告诉我邮电出版社拿到了 Tom 新作 Expert Oracle Database Architecture 的翻译版权。当时这本书应该也引起了不少国内出版社的注意,但最终”得手”的是邮电社,一本好书会被有眼光的编辑一直盯个好几年。下手的时候果断也是必要的。

说了这么多,还没说到这本书到底内容如何。“这本 Expert Oracle Database Architecture 是 Tom 在 《Oracle专家高级编程》 的基础之上的解构之作,内容上的变动相当大。不但加入了最新的 10g 的内容, 还作了很多技术补充” ,这里我要纠正一下这个”解构”,应该套用现在的流行技术词汇”重构”,完全是一本”重构”的图书,针对图书内容的重构

“锁”与”并行”这两个主题分别独立成章叙述,前一章是后一章必不可少的铺垫。要我推荐章节的话,应该首推 第 8 章 事务,不只是 DBA 要看,开发人员、架构师更要看。要设计一个高可靠、可扩展的应用,架构师甚至都要比 DBA 清楚事务。把复杂的东西用人人可作的代码用例展示出来,这是 Tom 拿手的本事。所以,看起来会让你不那么累。

最大的变化是 第十二章 数据类型,这是完全新增的一个章节,这一章中关于时间相关的数据类型讲述非常精彩。另外一个有趣的话题是 LOB,尽管现在用 LOB 字段的场景可能不那么多了,但是用过的人怕是多少都吃过这东西的亏。

如果非要挑毛病的话,我觉得对 分区表的讲述可能不够那么深入,以 Tom 的功力,应该对分区多讲一点,随着计算环境的变迁,OLTP 怕是都已经纷纷采用分区功能了。

翻译上基本上没啥大毛病,很多细节注意的都比较到位,记得 “Lock” 、”Latch” 翻译做什么,还单独做过讨论来着。甚至 前言中的 “Think different” 应该怎么翻译,也做过仔细推敲。从阅读体验来看,这本书的装帧质量很不错。排版改进非常非常多,虽说没办法和英文原版比,但是相比国内技术类图书,应该是不差的了。

如果你需要一本纸版的Oracle 图书,不妨考虑一下这本《Oracle 9i & 10g 编程艺术》。如果你已经买了这本书,多读几遍。书的价值不是由定价体现出来的,而是由你从这本书里学到多少东西决定的。最后,这些话…一般人儿我不告诉他……

EOF
补充: 下载部分英文章节试读.