用户操作
[即时聊天] [发私信] [加为好友]
chinalinuxzendID:chinalinuxzend
328674次访问,排名174,好友0人,关注者9人。
chinalinuxzend的文章
原创 61 篇
翻译 0 篇
转载 969 篇
评论 68 篇
最近评论
woainictok:觉得说的还好,讲的也比较清楚。
taoliujun:晕,电脑反映慢,多点了几次。
另外, 你能告诉我 什么参数 决定 mencoder的 cpu 占用率
taoliujun:我试验了十几次,vbitrate这个参数会直接影响到 转换后的 媒体文件大小, 设置成500,我这的那个什么比特维持在440左右, 压缩率是0.8左右。
设置成200, 比特率维持在220左右,压缩率是0.5左右
taoliujun:我试验了十几次,vbitrate这个参数会直接影响到 转换后的 媒体文件大小, 设置成500,我这的那个什么比特维持在440左右, 压缩率是0.8左右。
设置成200, 比特率维持在220左右,压缩率是0.5左右
taoliujun:我试验了十几次,vbitrate这个参数会直接影响到 转换后的 媒体文件大小, 设置成500,我这的那个什么比特维持在440左右, 压缩率是0.8左右。
设置成200, 比特率维持在220左右,压缩率是0.5左右
文章分类
收藏
相册
我的相册之linux
linux网站
absurd的专栏(RSS)
highscalability研究网站架构(RSS)
一只逐渐老去的IT菜鸟…(RSS)
回忆未来(RSS)
欢迎来到FirteX网站(RSS)
深度探索Linux内核(RSS)
牛逼的网站
辉哥的网站(RSS)
存档
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

转载 RHEL 的 I/O Scheduler 与 Database 的关系收藏

新一篇: 恢复 EXT3 Superblock 的正确方法 | 旧一篇: LPI 101 考试准备: 硬件和体系结构之六

原贴:http://www.dbanotes.net/database/rhel_io_scheduler_database.html

RHEL 的 I/O Scheduler 与 Database 的关系

今天参加 AIX 的技术培训,听了一些关于 CPU 调度的算法,倒也都是些基本知识,回想讲课内容的时候倒让我想起 Linux Kernel 的 I/O Scheduler 来。

这篇 Choosing an I/O Scheduler for Red Hat Enterprise Linux 4 and the 2.6 Kernel 是必须的参考资料。相比 Linux 2.4 Kernel 的一种 IO 调度器,2.6 做了很多改进,共有四种 IO 调度器。

Deadline scheduler

Deadline scheduler 用 deadline 算法保证对于既定的 IO 请求以最小的延迟时间,从这一点理解,对于 DSS 应用应该会是很适合的。

Anticipatory scheduler

Anticipatory scheduler(as) 曾经一度是 Linux 2.6 Kernel 的 IO scheduler 。Anticipatory 的中文含义是"预料的, 预想的", 这个词的确揭示了这个算法的特点,简单的说,有个 IO 发生的时候,如果又有进程请求 IO 操作,则将产生一个默认的 6 毫秒猜测时间,猜测下一个 进程请求 IO 是要干什么的。这对于随即读取会造成比较大的延时,对数据库应用很糟糕,而对于 Web Server 等则会表现的不错。这个算法也可以简单理解为面向低速磁盘的,因为那个"猜测"实际上的目的是为了减少磁头移动时间。

Completely Fair Queuing

虽然这世界上没有完全公平的事情,但是并不妨碍开源爱好者们设计一个完全公平的 IO 调度算法。Completely Fair Queuing (cfq, 完全公平队列) 在 2.6.18 取代了 Anticipatory scheduler 成为 Linux Kernel 默认的 IO scheduler 。cfq 对每个进程维护一个 IO 队列,各个进程发来的 IO 请求会被 cfq 以轮循方式处理。也就是对每一个 IO 请求都是公平的。这使得 cfq 很适合离散读的应用(eg: OLTP DB)。我所知道的企业级 Linux 发行版中,SuSE Linux 好像是最先默认用 cfq 的.

NOOP

Noop 对于 IO 不那么操心,对所有的 IO请求都用 FIFO 队列形式处理,默认认为 IO 不会存在性能问题。这也使得 CPU 也不用那么操心。当然,对于复杂一点的应用类型,使用这个调度器,用户自己就会非常操心。

那么如果跑数据库应用,那个更好一些呢? 我们看Choosing an I/O Scheduler for Red Hat Enterprise Linux 4 and the 2.6 Kernel一文中的测试结果:

scheduler.jpg

对于数据库应用, Anticipatory scheduler 的表现是最差的。Deadline 在 DSS 环境表现比 cfq 更好一点,而 cfq 综合来看表现更好一些。这也难怪 RHEL 4 默认的 IO 调度器设置为 cfq. 而 RHEL 4 比 RHEL 3,整体 IO 改进还是不小的。

哪一种方式更好? 很难说,每一种方式都有特定的应用对它是最适合的。就像上面的 as 好像表现比较差,如果是 CPU 密集型的应用呢?

Tip:
Q:如何确认当前用什么 IO 调度器?
A: 过滤 /var/log/boot.msg 文件, 查找 "io scheduler", 看到了么?

在 操作系统上可以查到的相关文档:
/usr/src/linux/Documentation/block/as-iosched.txt
/usr/src/linux/Documentation/block/deadline-iosched.txt

这篇文章应该只是一篇草稿...

--EOF--

| | Comments (1) | | Edit


Get Firefox with Google Toolbar for better browsing
Generate revenue from your website. Google AdSense.


本文相关评论|Comments(1)

i-think 的评论:

对于10G的RAC环境下,如果使用默认的CFQ算法,在IO频繁的时候会碰上5041764的BUG,oracle的建议就是修改IO算法为:elevator=deadline 

发表于 @ 2007年09月14日 20:38:00|评论(loading...)|编辑

新一篇: 恢复 EXT3 Superblock 的正确方法 | 旧一篇: LPI 101 考试准备: 硬件和体系结构之六

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © chinalinuxzend