首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试电离(针对使用cfq调度器的设备)的影响?

如何测试电离(针对使用cfq调度器的设备)的影响?
EN

Server Fault用户
提问于 2012-03-13 22:32:36
回答 1查看 1.7K关注 0票数 5

我正在尝试做一个实验来测量离子的影响。我想要做的是(每个关于服务器故障的另一个答案)导致足够频繁的I/O,使一个足够“有缺陷”的进程缺乏任何I/O。

基于关于服务器故障的另一个答案,我认为我需要使至少一个实际的I/O操作到一个通用的cfq排定设备每250毫秒。我的想法是写一个琐碎的程序,它有一个循环

  • 写入公共设备上的(可配置)文件,
  • 执行fsync() (强制执行明确的I/O操作),
  • 使用usleep()延迟可配置的时间。
  • 定期使用lseek()截断文件(这样我就不会填充文件系统)

然后,我使用ionice -c3 (空闲调度类)对普通设备上的一个文件启动程序的一个实例。我使用默认(尽最大努力)调度类同时运行各种实例,在通用设备上指定不同的文件(更改延迟值)。

我的假设是,对于在“最大努力”过程中延迟250 My或更多的值,我会看到“空闲”过程所取得的进展;对于小于250 My的值,我将看不到“空闲”过程所取得的任何进展。

我的观察是,这两个进程的业绩没有差别;它们都取得了类似的进展。为了确定(如果“最佳努力”进程比每250 no执行一次I/O要快得多),我启动了多个同时执行“最佳努力”进程的实例,指定没有(零)延迟。尽管如此,我仍然看到两个调度类中的进程之间的性能没有差别。

为了确定,我重新检查了调度器类:

代码语言:javascript
复制
$ cat /sys/block/xvda/queue/scheduler
noop anticipatory deadline [cfq] 

关于cfq调度程序的工作方式,我错过了什么?

如果这很重要,这是在一个2.6.18内核上。

EN

回答 1

Server Fault用户

发布于 2012-03-14 05:55:15

我尝试使用像stress -i nstress -d n这样的负载生成器来测量效果,其中"n“是进程的数量。把它放在一个窗口里。在其他设备中尝试nmoniostat,并在同一块设备上尝试具有代表性的应用程序进程。查看iostat中的服务时间如何随不同的电离设置(或应用程序内部的测试响应)而变化。

至于cfq,似乎在整个RHEL5生命周期(在2.6.18上)都有变化。在我的应用服务器上,由于争用问题,我不得不移动到noopdeadline电梯。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/369382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档