응용 프로그램별로 네트워크 대역폭의 우선 순위를 지정하려면 어떻게해야합니까?


20

Linux에서 특정 응용 프로그램에 네트워크 대역폭에 우선 순위를 부여하는 방법이 있습니까? niceCPU 우선 순위 와 같은 것 .

컨텍스트 : 저는 현재 매우 낮은 대역폭 연결 (3G 동글)에 있습니다. 을 사용하여 상당히 큰 업그레이드를 수행하는 동안 aptitude업그레이드 다운로드로 인해 인터넷 연결이 끊어지기 때문에 웹을 탐색하는 것이 사실상 불가능합니다.

그래서 내가하고 싶은 것은 aptitude프로세스 (및 모든 자식) 의 네트워크 대역폭 우선 순위를 낮추어 다른 프로세스가 사용하는 동안 너무 많은 대역폭을 사용하지 않도록하는 것입니다.


적성은 연결에 특정 포트를 사용합니까? 그렇다면 라우터의 QoS를 사용하여 해당 포트의 우선 순위를 낮게 설정할 수 있습니다 (라우터에 해당 기능이있는 경우).
MaQleod

@MaQleod : 1) 아니요, 다운로드에 HTTP를 사용합니다. 2) 3G 네트워크를 사용하고 있기 때문에 라우터가 없습니다 (물론 액세스 할 수있는 라우터는 아님).
Job

우선 순위를 가지고 플레이하는 대신 적성 / 적응의 다운로드 속도를 제한 할 것입니다. 탐색을 위해 일부를 남겨 두려면 최대 대역폭의 절반으로 설정하십시오. Catalin의 답변에 대한 의견에서 QoS를 사용하지 않는 이유를 밝히려고했습니다.
vtest December

답변:


8

force_bind를 사용하여 응용 프로그램의 모든 소켓에 대한 우선 순위를 설정 한 다음 Linux QoS (tc 명령)를 사용하여 응용 프로그램을 우선 순위 대역에 할당 할 수 있습니다. README 파일에서 예제를 확인하십시오.

http://kernel.embedromix.ro/us/

면책 조항 : 나는 저자입니다.

예:

14: Force priority (between 0 and 6 for non-root users). You can
        use 'tc' command from iproute to set-up 'prio' qdisc and to
        assign prio to queues:
        # 0. setup
        export FORCE_NET_VERBOSE=1
        export LD_PRELOAD=${LD_PRELOAD}:/usr/lib/force_bind.so
        # 1. Make sure you have a 'prio' qdisc attached to eth0, for example:
        tc qdisc add ev eth0 root handle 1: prio
        # 2. Assign applications to classed (bands):
        export FORCE_NET_PRIO=6 # interactive, band 0
        your_voip_program_here
        export FORCE_NET_PRIO=0 # best effort, band 1
        your_mail_program_here
        export FORCE_NET_PRIO=2 # bulk, band 2
        your_remote_backup_program_here
        # 3. Run tc statistics so you can see the classification:
        tc -s class show dev eth0

물론 htb 또는 다른 qdisc를 사용할 수 있습니다.


3
면책 조항에 감사드립니다! 슈퍼 유저의 정신으로, 모든 사람들이 볼 수 있도록 여기에 예제를 제공 할 수 있다면 좋을 것입니다!
slhck

1
다운로드하면 들어오는 트래픽이 발생합니다. QoS는 나가는 트래픽을 정책화할 수 있으며 들어오는 데이터의 양을 제어 할 수 없습니다. 이것이 작동하려면 호스트와 인터넷 사이의 라우터를 제어해야합니다.
vtest December

2
trickle(적어도 우분투와 데비안에서 사용 가능) 당신을 위해 그렇게 할 것이고, 조금 더 사용하기 쉽습니다 trickle -d 1 -u 1 aptitude. 숫자는 킬로바이트입니다.
taneli

1
들어오는 트래픽과 관련하여 라우터를 제어 할 수없는 경우에도 특정 유형의 들어오는 트래픽이 다른 유형보다 우선 순위를 높일 수 있습니까? @vtest
CMCDragonkai

3
@taneli : trickle대역폭 제한을 설정하는 데 사용할 수 있지만 프로세스 간 우선 순위를 정의하는 데 사용할 수 없습니다.
a3nm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.