Linux

硬碟節流?

  • December 7, 2018

你在同一時間複製很多東西,電腦性能就會下降。例如,嘗試同時複製 10 多個 ISO 映像。

網路中有 QoS,CPU 中有關聯性和優先級,但是硬碟驅動器有什麼可以限制 I/O 隊列的嗎?虛擬文件系統?作業系統驅動程序?

當然,您可以使案例如

  • 製作要複製的文件列表並執行一個一個複製文件的腳本
  • 使用 TeraCopy 等軟體

歡迎使用 Windows 和 GNU/Linux 解決方案。

對於 Linux 有ionice,Windows 有很長一段時間以來就有IO 優先級,但至少從 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

引用自:https://serverfault.com/questions/15305