Como limitar o uso da rede para aplicação concreta no linux que está sendo executado nela?

5

Estou procurando algo como bom para cpu, mas para uso de rede que limitará o consumo de rede do aplicativo ao nível que será configurado.

Eu tenho problemas com xapian-replicate-server que está consumindo 80% da minha rede. Está causando problemas nas conexões do mysql (o servidor mysql também está trabalhando nesta máquina). Eu não posso mover xapian ou mysql para outra máquina, então eu preciso limitar o uso da rede xapian a um nível decente.

Existe alguma ferramenta que me ajude a fazer isso?

    
por B14D3 24.04.2012 / 12:37

2 respostas

7

tc , iptables etc podem fazer isso, mas apenas para serem diferentes:

Você pode usar o recurso de kernel do Linux cgroups e seu módulo net_cls para limitar o servidor xapian-replicate. Algo assim deveria fazer:

mount -t cgroup -onet net /sys/fs/cgroup
cd /sys/fs/cgroup
mkdir xapian-replicate-server
/bin/echo $$ > xapian-replicate-server/tasks
/bin/echo 2048 > xapian-replicate-server/net.tcp
/bin/echo 4096 > xapian-replicate-server/net.tot
however_you_launch_xapian-replicate-server

Isto criaria um novo cgroup para Xapian e daria um total de 2048 kilobytes / s de largura de banda de tráfego TCP e 4096 kilobytes / s de qualquer largura de banda de tráfego de rede.

    
por 24.04.2012 / 13:03
2

Parece que "trickle" pode funcionar para você: link

    
por 24.04.2012 / 12:55