¿Cómo puedo configurar el uso compartido de ancho de banda justo entre cgroups?

¿Se puede cambiar a BSD? 🙂

Puede hacer coincidir el tráfico por PID usando iptables y enviarlo a tc. Google tiene algunos tutoriales sobre cómo hacer eso. Más allá de eso en una escala “general” en Linux, eres un poco afaik.

Una idea hacky: una conexión distinta requiere un zócalo distinto. Entonces, para obtener un nuevo “flujo”, necesita abrir un nuevo socket (léase: identificador de archivo). ¿Es un cierto UID el que ejecuta la aplicación? Si es así, puede establecer cuántos identificadores de archivos (y, por lo tanto, sockets) que un UID puede abrir a la vez configurándolo con ulimit o colocando una línea en su limit.conf. Sin embargo, esto podría romper su aplicación de manera inesperada si intenta escribir un archivo o algo mientras tiene un puñado de sockets abiertos.

La mayoría de las limitaciones de velocidad en linux en estos días está en la aplicación en sí misma, a través de la configuración del socket de recepción de buffers bajos y la sincronización precisa de la frecuencia con la que se realiza el sondeo / recuperación de ese buffer. Puede investigar esto si tiene control sobre su aplicación. También hay un antiguo proyecto llamado “goteo” que limita la velocidad en los enchufes, pero no estoy seguro de si podrá calzarlo.