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.
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).
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.
Tags linux