¿Existe una técnica en Windows que pueda limitar selectivamente el ancho de banda de un proceso en ejecución?
¿Existe una técnica en Windows que pueda limitar selectivamente el ancho de banda de un proceso en ejecución?
Respuestas:
Uso Net Limiter , que tiene una versión gratuita, pero desafortunadamente tendrá que pagar por la función de limitación .
NetLimiter es una herramienta de control y monitoreo de tráfico de Internet diseñada para Windows. Puede usar NetLimiter para establecer límites de velocidad de transferencia de descarga / carga para aplicaciones o incluso una sola conexión y monitorear su tráfico de Internet.
Junto con esta característica única, Netlimiter ofrece un conjunto completo de herramientas estadísticas de Internet. Incluye mediciones de tráfico en tiempo real y estadísticas de tráfico de Internet a largo plazo por aplicación
Hay buenas razones para considerar el enfoque de "enrutador orientado a Internet" para administrar una red en su conjunto; sin embargo, como la pregunta original era específica y el usuario podría ser la única computadora en la red, esa es una preocupación secundaria.
Según una de las otras respuestas principales, durante un tiempo probé NetBalancer . Funciona muy bien y es fácil de configurar.
NetBalancer está disponible para su compra en su página web por aproximadamente $ 50. La versión de prueba / gratuita le permite controlar las conexiones, pero no permite la limitación.
La alternativa es NetLimiter . Tiene un período de prueba gratuito , pero comienza en ~ $ 20 para la versión Lite o ~ $ 30 para la versión Pro. NetLimiter es la aplicación de prueba probada para muchos SysAdmins.
Cuando finaliza la versión de prueba de NetLimiter, hasta que compre una licencia, se convierte en una herramienta de solo monitoreo, y ya no admite la aceleración. Esto aún puede ser útil, pero no para este caso de uso.
Aunque el uso de un enrutador inteligente / altamente configurable suele ser el mejor enfoque para la gestión integral de la red, la desconexión entre eso y la pregunta original no se explica en la respuesta de @ ZaB. La pregunta original es específicamente sobre un proceso, que un enrutador no tiene forma confiable de identificar.
La única variación que es casi útil en este extremo es si una aplicación solo se comunica a través de un canal o tipo de tráfico específico que el enrutador puede identificar fácilmente. A continuación se muestra un ejemplo de las descargas de EA de Origin:
Origin actualmente usa Akamai. Por lo general, configuro descargas / actualizaciones automáticas para que se ejecuten en cualquier momento, pero preferiría que no use toda la capacidad de la línea mientras estoy ocupado haciendo otras cosas más importantes. El origen resulta ser muy malo en este tipo de cosas., por lo tanto, no admite horarios de descarga ni limitación de descargas. Actualmente mi escritorio está descargando un juego usando el servidor "a1750.d.akamai.net". Un enrutador MikroTik (un ejemplo de enrutador inteligente) puede tomar nota de que se utilizó este nombre DNS (estará en el caché DNS con una dirección IP) y puede configurarse temporalmente para agregar la dirección IP del servidor de destino a una "lista de direcciones ". Todo el tráfico hacia / desde la lista de direcciones se puede agregar a una cola estrangulada, por lo que, técnicamente, estrangula una sola aplicación.
Sin embargo, el enfoque anterior es ingenuo. EA podría cambiar en cualquier momento el nombre del servidor, el protocolo utilizado u otro servicio no relacionado que utiliza la infraestructura de Akamai podría inadvertidamente ser limitado. Ahora mi nueva regla brillante se vuelve inútil y rota.
Aquí está la aceleración de mi pobre hombre:
No limita exactamente el ancho de banda, sino que suspende / reanuda el proceso de alimentación de ancho de banda y, por lo tanto, libera algo de ancho de banda para otras aplicaciones. ¡Y es gratis!
Necesita PsSuspend.exe (pongo este archivo en C: \ tools \ sysinternals) y un archivo por lotes (por ejemplo) slow.bat:
@echo off
:START
c:\tools\sysinternals\pssuspend.exe %1 >NUL: 2>&1
timeout /T 1 /NOBREAK >NUL:
c:\tools\sysinternals\pssuspend.exe -r %1 >NUL: 2>&1
timeout /T 1 /NOBREAK >NUL:
goto START
Ahora abra una línea de comando como administrador y ejecute el archivo por lotes con el programa de aceleración como parámetro
slow.bat filetransfer.exe
(reemplace filetransfer.exe con el nombre de su programa)
Si ha terminado, presione CTRL-C y cancele el lote.
Si el programa aún se está ejecutando, considere reanudar el programa en caso de que haya interrumpido el lote mientras se suspendió el programa:
c:\tools\sysinternals\pssuspend.exe -r filetransfer.exe
(reemplace filetransfer.exe con el nombre de su programa)
Puede usar la Política de grupo de Windows para regular el ancho de banda de cualquier proceso. Ir:
Aquí puede ver las políticas actuales y crear otras nuevas al:
El asistente le permite crear una política para limitar el ancho de banda para:
Y sus políticas se pueden filtrar por:
También puede crear estas políticas en Powershell ejecutando:
New-NetQosPolicy -Name "FTP" -AppPathNameMatchCondition "ftp.exe" -ThrottleRateActionBitsPerSecond 1MB
Aunque esto puede requerir derechos de administrador, y parece haber un error en el que las políticas creadas como esta no aparecerán en la GUI.