Para o Linux, ionice , o Windows tem Prioridades de I / O desde há algum tempo, mas pelo menos desde o Vista também está totalmente disponível numa implementação sã para Workstations.
Você está copiando muitas coisas ao mesmo tempo e o desempenho do computador simplesmente acaba. Tente, por exemplo, copiar mais de 10 imagens ISO ao mesmo tempo.
Há QoS em redes, afinidades e prioridades em CPUs, mas há algo para os discos rígidos controlarem as filas de E / S? Sistemas de arquivos virtuais? Drivers do sistema operacional?
Claro que você pode sair por aí com, por exemplo,
As soluções Windows e GNU / Linux são bem-vindas.
Para o Linux, ionice , o Windows tem Prioridades de I / O desde há algum tempo, mas pelo menos desde o Vista também está totalmente disponível numa implementação sã para Workstations.
ionice só funciona com o agendador CFQ, que geralmente é o padrão. Se você estiver usando outro agendador ou se a ionice não estiver fazendo o trabalho por você, convém pausar periodicamente a execução para deixar seus buffers io nivelados. Aqui está um script que usamos para isso:
#!/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
Em um nível mais baixo, o Linux (e eu presumo que o Windows e o * BSD e todo o resto em uso sério) tem um agendador de IO que tenta equilibrar a melhor utilização geral de cada dispositivo com um bom serviço para cada processo. O agendador padrão atual do Linux é conhecido como Fila Completamente Justa , com as atuais alternativas geralmente disponíveis sendo chamadas Antecipação e Prazo Final .
Em uma nota um pouco relacionada, o programa iotop é útil para monitorar e examinar o que está acontecendo em um sistema sob intensa IO. carga.
Curiosamente, houve conversas recentes sobre a implementação de QoS para dispositivos de bloco em LKML.
Há um bom artigo sobre o sempre excelente LWN.net: Suporte para limitação de dispositivos de bloqueio de dispositivos [V3]
no Linux ionice, você prioriza o IO, mas fica um pouco curto. há dm-ioband que deve ser muito mais poderoso; mas eu ainda não me sinto confortável com os docs ....