硬盘节流?

硬盘节流?

您同时复制大量内容,计算机性能就会下降。例如,尝试同时复制 10 个以上的 ISO 映像。

网络中有 QoS,CPU 中有亲和性和优先级,但是硬盘驱动器有没有什么可以限制 I/O 队列?虚拟文件系统?操作系统驱动程序?

当然,你也可以使用例如

  • 制作要复制的文件列表并运行逐个复制文件的脚本
  • 使用 TeraCopy 等软件

欢迎使用 Windows 和 GNU/Linux 解决方案。

答案1

对于 Linux,有伊奥尼采,Windows 有IO 优先级已经有一段时间了,但是至少从 Vista 开始,它在工作站上也可以完全正常使用了。

答案2

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

答案3

在较低级别上,Linux(我假设 Windows、*BSD 和所有其他严肃使用的系统)有一个 IO 调度程序,它试图平衡每个设备的最佳总体利用率和为每个进程提供良好的服务。Linux 当前的默认调度程序称为完全公平排队,目前普遍可用的替代方案被称为预期最后期限

与此相关的是,该程序iotop对于监控和检查高 IO 负载下的系统运行情况很有用。

答案4

在 Linux 上,ionice 可以让你优先处理 IO,但还不够。频带它应该更加强大;但我仍然对这些文档感到不舒服......

相关内容