你在同一时间复制了很多东西,电脑的性能就会消失。 尝试例如同时复制10个以上的ISO映像。
networking中有QoS,CPU的亲和力和优先级,但硬盘有没有什么可以阻止I / O队列? 虚拟文件系统? OS驱动程序?
当然,你可以用这个例子来解决这个问题
Windows和GNU / Linux解决scheme是受欢迎的。
对于Linux来说,Windows已经有很长一段时间了,但是至less从Vista开始,它也完全可以用于工作站。
ionice仅适用于CFQ调度程序,这通常是默认的。 如果您正在使用另一个调度程序,或者如果ionice没有为您做这项工作,您可能需要定期暂停执行以让您的io缓冲区刷新。 这是一个我们使用的脚本:
#!/bin/sh # Throttles the execution of a process by stoping it after every second of # execution time # # Usage: io_nice <sleeptime> <pid> # Where "sleeptime" is the number of seconds of sleep for each second of runtime # and "pid" is the process ID of the process to throttle PID=$2 SLEEPTIME=$1 while [ true ]; do kill -s STOP $PID &> /dev/null|| exit 0 sleep $SLEEPTIME kill -s CONT $PID &> /dev/null || exit 0 sleep 1 done
在较低的层次上,Linux(我认为Windows和* BSD以及其他一切正在使用中)都有一个IO调度程序,它试图平衡每个设备的最佳整体利用率,并为每个进程提供良好的服务。 Linux当前的默认调度程序被称为完全公平队列 ,目前通常可用的替代方法被称为预期和截止时间 。
在某种程度上相关的说明中,程序iotop对于监视和检查重负载下的系统中发生了什么很有用。
有趣的是,最近有关于在LKML上实现块设备的QoS的讨论。
有一个很好的写在优秀的LWN.net: 块设备生物节stream支持[V3]
在Linux ionice上,让我们优先考虑IO,但是稍微短一些。 有dm-ioband应该是更强大的; 但我仍然不舒服的文档….