이 질문은 다음과 비슷합니다. 인터넷 대역폭을 어떻게 제한합니까? . 그러나 wondershaper
및 trickle
이미 시작 응용 프로그램에 대한 인터넷 대역폭을 제한 할 수 없습니다. 그렇다면 이미 시작된 응용 프로그램의 인터넷 대역폭을 어떻게 제한 할 수 있습니까 (그러나 전체 시스템이 아닌 하나의 응용 프로그램에 대해서만)? :)
이 질문은 다음과 비슷합니다. 인터넷 대역폭을 어떻게 제한합니까? . 그러나 wondershaper
및 trickle
이미 시작 응용 프로그램에 대한 인터넷 대역폭을 제한 할 수 없습니다. 그렇다면 이미 시작된 응용 프로그램의 인터넷 대역폭을 어떻게 제한 할 수 있습니까 (그러나 전체 시스템이 아닌 하나의 응용 프로그램에 대해서만)? :)
답변:
일반적인 경우 커널에서 소유자 확장을 netfilter로 사용하는 것이 이론적으로 가능합니다. die.net 의 맨 페이지 에서 옵션 --pid-owner
을 볼 수 있지만 SMP로 인해 손상되었다고 말합니다.iptables
내 시스템 인 10.04에는 매뉴얼에 그러한 옵션이 없습니다. (. 그래서 이번에는 운이 좋지 않다고 생각 --pid-owner
합니다. 로켓 과학이 아닙니다.
첫 단계는 Linux 자체와 iptables에서 수행해야합니다.
HTTP와 같은보다 구체적인 유형의 트래픽에 대해서는 프록시를 사용하여 편의를 제공하는 방법이 있어야하지만이 유스 케이스가 자주 발생하지 않기 때문에 해킹이 필요할 수 있습니다.
특히 도움이되지는 않지만 실제로 대역폭을 효과적으로 제한하는 유일한 방법은 패킷 형성 또는 대기열 기술을 사용하는 것입니다. 내가 아는 유일한 방법은 현재 Bluecoat 소유 의 PacketShaper 어플라이언스 제품군입니다 .
나는 몇 년 동안 직접 사용하지는 않았지만 매일 Bluecoat 프록시를 사용하므로 PacketShaper 범위 개발을 계속했습니다.
그들은 비싸지 만, 그들이하는 일에 정말로 훌륭합니다. 대기열을 전혀 사용하지 않습니다. TCP 쌍 크기를 동적으로 조작하여 TCP 쌍 대화에서 대역폭을 조절합니다. 최신 릴리스에서는 응용 프로그램도 인식하므로 "iPlayer와 Youtube를 조절하지만 다른 모든 것을 통과 시키십시오"라고 말할 수 있습니다.
나는이 장치 기능의 표면을 실제로 긁적이지만 Ubuntu와 관련이 없기 때문에 멈출 것이므로이 답변이 완전히 관련이없는 것을 두려워합니다.
나는 이것을 시도하지 않았지만 이것은 작동해야합니다 ...