Como limitar a velocidade de gravação do HDD para os programas escolhidos

23

Meu HDD é lento em 5400RPM e, ao trabalhar com arquivos de tamanho de 10 GB, é impossível usar o computador até que esse arquivo grande termine de recriar uma nova cópia / muxing / gravação / etc. depende do processo, o problema é que ele consome toda a velocidade do disco rígido e nenhum outro programa pode ser usado enquanto esse processo é executado.

Por isso, pensei que talvez pudesse limitar a velocidade de gravação do HDD para os programas com os quais trabalho, para que reservasse a velocidade restante do HDD livre para navegar na Internet ou reproduzir mp3s enquanto os arquivos grandes estão sendo processados.

user3108268
fonte
2
Eu nunca ouvi falar de uma E / S de disco rígido estrangulada no Windows, pelo menos nativamente. Você tentou definir o processo de prioridade :wmic process where name="calc.exe" CALL setpriority "idle"
Marcelo
O @Marcelo Priority determina o tempo da CPU, não o disco. Ao processar um arquivo grande, é o disco que desacelera o computador, não a CPU.
Keltari
2
Relacionados: superuser.com/questions/462541/...
Cees Timmerman
@ Keltari Sim, eu estou ciente. Eu apenas pensei que talvez modificar a prioridade da CPU pudesse ter algum impacto no objetivo final da questão.
Marcelo
2
Se o computador estiver "inutilizável" ao copiar arquivos enormes, é possível que você tenha esquecido de ativar o DMA? Normalmente, se o disco está ocupado, faz pouca ou nenhuma diferença, pois isso ocorre sem muita (ou nenhuma) intervenção da CPU.
Damon

Respostas:

13

Infelizmente, você não pode fazer isso. O hardware é extraído de aplicativos e até partes do sistema operacional. Em essência, o aplicativo diz "grave isso no disco" e o sistema operacional lida com isso. O aplicativo não lida com como ou mesmo quando é gravado. Tudo isso é tratado no nível do driver e do kernel e não há uma maneira real de mudar isso.

Mesmo se você pudesse fazer isso, o fato é que você está usando um disco magnético giratório - e muito lento - não veria muito ganho. A unidade está constantemente girando e as cabeças estão se movendo ao longo do disco. Mesmo que você tenha gravado menos no seu arquivo, o disco estará constantemente buscando as áreas corretas no disco para ler / gravar de / para.

Sua melhor opção seria obter outra unidade e fazer seu trabalho nessa unidade, deixando a sua primeira unidade para a Internet, MP3s etc.

PS Você não mencionou quanta RAM você possui. A troca pode ser um fator na velocidade lenta. Dependendo da quantidade de RAM que você possui, adicionar mais apenas ajudará.

Keltari
fonte
2
Uma versão do Linux para Windows não ionicechegaria perto de ser uma resposta?
Daniel Beck
@DanielBeck Pode haver software por aí que possa funcionar. No entanto, quem sabe que complicações podem advir do uso? Seria por isso muito mais fácil simplesmente tapa na outra unidade e ser feito com a questão.
Keltari
1
Você consegue. Veja a resposta do dsulimano a uma pergunta semelhante
niutech 11/08/14
1
Não vejo nenhum argumento de princípio sobre por que um aplicativo não pôde ser regulado. Aqui está uma aceleração muito simples: suspenda o processo por 1 segundo a cada segundo. Isso reduz o IO em cerca de 50% e permite que outros processos entrem para usar o disco. Os tempos de busca são da ordem de 10ms.
usr
@usr: Depende do tipo e da frequência de E / S. Sua abordagem funciona em alguns casos, mas não em outros - por exemplo, se a E / S está acontecendo inteiramente no modo kernel, acho que você não pode sempre pausá-la pausando o processo no modo usuário.
Mehrdad 12/08
9

O Process Lasso permite priorizar a E / S. Do seu FAQ:

Novo na v4.1 (v4.09 beta), o Process Lasso possui configurações de prioridade de E / S atuais e padrão explícitas disponíveis para quem as precisar. Isso se aplica apenas ao NT6 + (Vista, Win7, ...).

NO ENTANTO, a priorização de E / S do Vista é baseada na prioridade do segmento que faz a E / S, que depende da classe de prioridade do processo que faz a E / S. Na verdade, existem apenas dois níveis de prioridade utilizáveis ​​pelos aplicativos, Normal e Muito Baixo. Embora existam tecnicamente 5, apenas esses dois são implementados ou utilizáveis ​​por processos.

Portanto, o ajuste das prioridades do encadeamento será propagado para a E / S desse encadeamento. Dessa forma, o Process Lasso já faz a priorização de E / S. A Microsoft recomenda que os aplicativos ajustem sua prioridade de E / S com base na definição da prioridade do encadeamento de chamada (diretamente ou no ajuste da classe base de prioridade do processo).

Consulte também o documento sobre priorização de E / S da Microsoft .

niutech
fonte
1

O que faço quando tenho um processo que continua consumindo toda a E / S do meu disco no Windows é abrir o Process Explorer e pausar o processo incorreto. Depois que terminei o meu negócio e estou pronto para esperar um pouco, retomo-o. Definitivamente, não é a maneira mais produtiva de fazê-lo, pois é uma maneira de controlar tudo o que é possível, e seu processo terá que esperar enquanto você usa o computador, mas até agora não vi nenhuma alternativa melhor.

Por outro lado, se você puder executar seu processo no Cygwin, poderá instalar pvno computador e usá-lo como o primeiro ou último passo com uma opção (acho que é -r) para acelerar a taxa de saída do PV.

RAKK
fonte