Cómo limitar la velocidad de escritura de HDD para los programas elegidos

23

Mi HDD es lento a 5400 RPM y cuando trabajo con archivos de 10 GB de tamaño, es imposible usar la computadora hasta que ese archivo grande termine de volver a crear una nueva copia / muxing / escritura / etc. depende del proceso, lo que pasa es que consume toda la velocidad del disco duro y no se puede usar ningún otro programa mientras se ejecuta este proceso.

Así que estaba pensando que tal vez podría limitar la velocidad de escritura de HDD para los programas con los que trabajo, para luego reservar la velocidad de sobra de HDD gratuita para navegar por Internet o reproducir mp3 mientras se procesan los archivos grandes.

usuario3108268
fuente
2
Nunca he oído hablar de un HDD IO acelerado en Windows, al menos de forma nativa. ¿Has intentado establecer la prioridad del proceso ?:wmic process where name="calc.exe" CALL setpriority "idle"
Marcelo
@Marcelo Priority dicta el tiempo de CPU, no el disco. Al procesar un archivo grande, el disco es lo que está ralentizando la computadora, no la CPU.
Keltari
2
Relacionado: superuser.com/questions/462541/…
Cees Timmerman
@ Keltari Sí, lo sé. Solo pensé que tal vez modificar la prioridad para la CPU podría tener algún impacto hacia el objetivo final de la pregunta.
Marcelo
2
Si la computadora está "inutilizable" al copiar archivos grandes, ¿es posible que haya olvidado habilitar DMA? Normalmente, si el disco está ocupado o no hace poca o ninguna diferencia, ya que eso sucede sin mucha (o ninguna) intervención de la CPU.
Damon

Respuestas:

13

Lamentablemente, no puedes hacer eso. El hardware se abstrae de las aplicaciones e incluso partes del sistema operativo. En esencia, la aplicación dice "escribe esto en el disco" y el sistema operativo lo maneja. La aplicación no maneja cómo ni siquiera cuando se escribe. Todo esto se maneja a nivel del controlador y del núcleo y no hay una forma real de cambiar esto.

Incluso si pudieras hacer esto, el hecho es que estás usando un disco magnético giratorio, y uno muy lento, no verías mucha ganancia. La unidad gira constantemente y las cabezas se mueven a lo largo del disco. Incluso si escribió menos en su archivo, el disco buscará constantemente las áreas correctas en el disco para leer / escribir en / desde.

Su mejor opción sería obtener otra unidad y hacer su trabajo en esa unidad, dejando su primera unidad para Internet, MP3, etc.

PD: No mencionaste la cantidad de RAM que tienes. El intercambio podría ser un factor en la velocidad lenta. Dependiendo de la cantidad de RAM que tenga, agregar más solo ayudará.

Keltari
fuente
2
¿Una versión de Linux para Windows no ionicese acerca a ser una respuesta?
Daniel Beck
@DanielBeck Es posible que haya software que funcione. Sin embargo, ¿quién sabe qué complicaciones podrían derivarse de usarlo? Sería por lo tanto más fácil simplemente bofetada en otra unidad y acabar con el problema.
Keltari
1
Puedes hacerlo. Vea la respuesta del dsulimano a una pregunta similar
niutech
1
No veo ningún argumento basado en principios de por qué una aplicación no puede ser estrangulada. Aquí hay un acelerador muy simple: suspenda el proceso durante 1 segundo por segundo. Eso acelera la E / S en aproximadamente un 50% y permite que otros procesos entren para usar el disco. Los tiempos de búsqueda son del orden de 10 ms.
usr
@ usr: depende del tipo y la frecuencia de E / S. Su enfoque funciona en algunos casos, pero no en otros, por ejemplo, si la E / S está sucediendo completamente en modo kernel, no creo que siempre pueda pausarla pausando el proceso en modo usuario.
Mehrdad
9

Process Lasso le permite priorizar E / S. De sus preguntas frecuentes:

Nuevo en v4.1 (v4.09 beta), Process Lasso tiene configuraciones de prioridad de E / S actuales y predeterminadas explícitas disponibles para quienes las requieran. Esto solo se aplica a NT6 + (Vista, Win7, ...).

SIN EMBARGO, la priorización de E / S de Vista se basa en la prioridad del subproceso que realiza la E / S, que depende de la clase de prioridad del proceso que realiza la E / S. En realidad, solo hay dos niveles de prioridad utilizables por las aplicaciones, Normal y Muy bajo. Aunque técnicamente hay 5, solo estos dos son implementados o utilizables por procesos.

Por lo tanto, el ajuste de las prioridades del hilo se propagará a la E / S de ese hilo. De esta manera, Process Lasso ya realiza la priorización de E / S. Microsoft recomienda que las aplicaciones ajusten su prioridad de E / S según la prioridad del subproceso de llamada (directamente o mediante el ajuste de la clase base de prioridad del proceso).

Consulte también el documento sobre priorización de E / S de Microsoft .

niutech
fuente
1

Lo que hago cuando tengo un proceso que sigue consumiendo todas las E / S de mi disco en Windows es abrir Process Explorer y pausar el proceso ofensivo. Después de terminar mi negocio y estar listo para esperar un poco, lo reanudo. Definitivamente no es la forma más productiva de hacerlo, ya que es todo o nada para controlar la E / S de disco y su proceso tendrá que esperar mientras usa su computadora, pero hasta ahora no he visto una alternativa mejor.

Por otro lado, si puede hacer su proceso en Cygwin, puede instalarlo pven su computadora y usarlo como el primer o último paso con una opción (creo que es -r) para regular la velocidad de salida del pv.

RAKK
fuente