linux – 如何测试ionice的效果(使用cfq调度程序对设备进行测试)
我正在尝试构建一个实验来测量ionice的效果.我想做的是(每
another answer on serverfault)导致足够频繁的I / O,使得任何I / O都缺乏充分的“niced”过程.
基于another answer on serverfault,我认为我需要每250ms对一个常见的cfq预定设备进行至少一次实际的I / O操作.我的想法是写一个有一个循环的琐碎程序 >写入公共设备上的(可配置)文件, 然后,我使用ionice -c3(空闲调度类)对公共设备上的一个文件启动一个程序实例.我同时使用默认(尽力而为)调度类运行各种实例,在公共设备上指定不同的文件(改变延迟值). 我的假设是,对于“尽力而为”过程的250ms或更长的延迟值,我会看到“空闲”过程所取得的进展;对于小于250毫秒的值,我会看到“空闲”过程几乎没有取得任何进展. 我的观察是两个过程的表现没有差别;他们都取得了类似的进展.只是为了确定(如果挂钟指示“尽力而为”过程执行I / O的速度比每250毫秒快得多),我启动了多个“尽力而为”过程的同时实例,指定否(零)延迟.尽管如此,我发现两个调度类中的进程之间的性能没有差异. 只是为了确定,我重新检查了调度程序类: $cat /sys/block/xvda/queue/scheduler noop anticipatory deadline [cfq] 我错过了关于cfq调度程序如何工作的内容是什么? 如果重要,那就是2.6.18内核. 解决方法
我尝试使用负载生成器(如stress -i n或stress -d n)来测量效果,其中“n”是进程数.在一个窗口中运行它.在另一个中尝试nmon或iostat,并在同一块设备上尝试代表性的应用程序进程.通过各种电离设置(或应用程序内的测试响应)了解iostat中的服务时间如何变化.
至于cfq,整个RHEL5生命周期似乎都有变化(2.6.18).在我的应用程序服务器上,由于争用问题我不得不转移到noop和截止日期的电梯,这是显而易见的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |