¿Forma de limitar el ancho de banda de los programas en Windows?

85

¿Existe una técnica en Windows que pueda limitar selectivamente el ancho de banda de un proceso en ejecución?

James McMahon
fuente
3
Aquí hay una lista completa de aplicaciones que pueden hacer esto: alternativeto.net/software/netbalancer
bgmCoder
Las nuevas actualizaciones de NetBalencers no limitan los programas según su declaración, la prueba es de solo 7 días, solo puede limitar 3 softwares (cuando decide funcionar) y cuesta la friolera de 50 dólares por el servicio completo. Ni siquiera te molestes.

Respuestas:

21

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

usuario
fuente
8
No, las versiones lite / pro, que permiten limitar el tráfico, no son gratuitas.
demonkoryu
Este, por el contrario , funciona bastante bien en Windows XP.
GSerg
NetLimiter 4 todavía tiene la funcionalidad limitante, y está en la versión gratuita, pero es por tiempo limitado.
Dan Atkinson el
9

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.

NetBalancer


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.

NetLimiter


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.

Usar un enrutador (con una explicación de por qué este no es un buen enfoque 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.

zaTricky
fuente
No estoy seguro de que la versión gratuita de NetBalancer todavía permita la limitación del ancho de banda. Citando la página de descarga : "La versión no registrada funciona solo como una aplicación de monitoreo y no admite prioridades ni reglas".
Gras Double
Suspiro. Curioso ahora sobre cuándo cambió eso. No he instalado Origin desde la última vez que "actualicé" mi escritorio de juegos.
zaTricky
2

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)

bebbo
fuente
Esto realmente no resuelve el problema. Es una solución de proceso única, debe conocer el proceso que está acaparando el ancho de banda y no debe estar usándolo activamente.
Dan Atkinson el
1
Si desea "limitar el ancho de banda de un proceso en ejecución" (esa es la pregunta), ya conoce el proceso, ¿verdad? Y mis procesos que consumen todo el ancho de banda son especialmente cargas (hace que mi Internet no sea utilizable para nada más) y tal vez también descargas. El "estrangulamiento de mi pobre hombre" hace el trabajo: puedo subir y seguir usando internet. Y sí, no es una solución perfecta. Es para hombres pobres, no para comprar algún software.
bebbo
1
Tengo que estar de acuerdo con @ dan-atkinson. NetBalancer es un buen ejemplo donde la versión gratuita funcionará perfectamente bien en el mismo caso de uso que este. Este método también tiene limitaciones: - Requiere pasos engorrosos / manuales - No hay forma de especificar cuál debería ser el límite de ancho de banda. - Este método simplemente puede cambiar el uso no deseado "estable" en picos y valles menos deseables. - La aplicación dejará de responder / será
lenta
El geek en mí se pregunta si esto podría ser una forma buena y barata de hacer las cosas, pero con un tiempo de espera mucho más bajo, como 50 ms. Por lo tanto, habría una gran cantidad de suspensiones / suspensiones, pero la experiencia podría ser más fluida. No sé cómo el tiempo en suspensión realmente se reduce a una tasa de carga reducida, pero es algo con lo que experimentar ...
pgr
1

Puede usar la Política de grupo de Windows para regular el ancho de banda de cualquier proceso. Ir:

  • Menú Inicio> Ejecutar> gpedit.msc
  • Configuración de computadora / usuario (elija una u otra)> Configuración de Windows> QoS basada en políticas

Aquí puede ver las políticas actuales y crear otras nuevas al:

  • Haga clic derecho en "QoS basada en políticas" o vaya a "Acción"> Crear nueva política ...
  • Luego, siga el asistente para crear una nueva política de limitación.

El asistente le permite crear una política para limitar el ancho de banda para:

  • Todo en tu computadora
  • Procesos específicos
  • Sitios web específicos (solo para aplicaciones que utilizan protocolos HTTP)

Y sus políticas se pueden filtrar por:

  • Protocolos TCP o UDP
  • IP de origen / destino
  • Puertos de origen / destino

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.

Silveri
fuente