limite de largura de banda por processo

3

Eu tenho um servidor que executa um processo de backup (um script bash, na verdade) a cada hora. Parte dessa rotina de backup é sincronizar as alterações em um sistema remoto (inclui controle de revisão, etc etc). Isso funciona muito bem, quase não requer CPU ou memória e é a solução de backup perfeita para este sistema.

No entanto, o problema é que existe em uma largura de banda de saída muito limitada, e a cada hora o script bloqueia o sistema por 30 a 90 segundos (dependendo de quanto precisa ser sincronizado). Ele fica tão ruim que, mesmo quando estou usando uma conexão SSH durante o período de backup, a conexão do terminal ficará bloqueada e levará mais de 5 segundos para responder por todas as teclas .

A pergunta: Como posso limitar a largura de banda de saída em uma base por processo, por programa ou por script? Se isso faz diferença, eu uso o servidor Ubuntu. Existem utilidades que fazem isso?

Para crédito extra, há alguma referência C / C ++ sobre conexões de rede de vinculação / propriedade que eu possa usar para criar meu próprio programa? Por exemplo: o Apache pega a porta 80, mas sempre que tenta enviar algo, meu programa entrava e acelerava a conexão, entre o apache e a interface de rede em nível de hardware. Isso é possível?

(Nota: estou disposto a considerar opções que modificam o kernel do linux, mas somente se não houver mais nada disponível).

    
por cegfault 10.04.2012 / 20:22

2 respostas

2

você deve tentar o link (leve ferramenta de limitação de largura de banda do userspace) e link (um canal limitador de largura de banda), parece ser o que você precisa.

    
por 26.04.2012 / 05:39
0

Confira os links nice, ionice e

Você também pode procurar um roteador de modelagem de tráfego no lado da rede.

Se o seu programa de backup ainda não executa incrementais, compactação e desduplicação, convém verificar isso também para reduzir a quantidade de largura de banda imposta pelo (s) processo (s) de backup.

    
por 11.04.2012 / 01:11

Tags