wget
또는 의 다운로드 속도를 제한할 수 있습니까 curl
?
다운로드하는 동안 스로틀 값을 변경할 수 있나요?
답변1
예, wget과 컬 모두 다운로드 속도 제한을 지원합니다. 두 옵션 모두 매뉴얼 페이지에 직접 언급되어 있습니다.
곱슬
--limit-rate <speed> Specify the maximum transfer rate you want curl to use. This feature is useful if you have a limited pipe and you'd like your transfer not to use your entire bandwidth. The given speed is measured in bytes/second, unless a suffix is appended. Appending 'k' or 'K' will count the number as kilobytes, 'm' or M' makes it megabytes, while 'g' or 'G' makes it gigabytes. Examples: 200K, 3m and 1G.
예를 들어:curl --limit-rate 423K
얻다
--limit-rate=amount Limit the download speed to amount bytes per second. Amount may be expressed in bytes, kilobytes with the k suffix, or megabytes with the m suffix. For example, --limit-rate=20k will limit the retrieval rate to 20KB/s. This is useful when, for whatever reason, you don't want Wget to consume the entire available bandwidth.
예를 들어:wget --limit-rate=423k
답변2
2년 후 나는 이 재미있는 이야기를 던져볼 것입니다. 비록 대화형은 wget
아니지만 curl
적어도 wget
(아마도 curl
확실하지는 않지만) 스위치가 있습니다 -c
(다운로드를 중단한 지점부터 계속됨을 나타냄). 따라서 다운로드 중에 속도를 변경해야 하고 스위치를 사용한 경우 -c
다른 속도로 --limit-rate=x
중지했다 wget
가 다시 시작하면 변경됩니다.
답변3
tc
및 도구를 사용하여 트래픽 속도를 제한할 수 있지만 netem
이렇게 하면 컴퓨터의 네트워크 인터페이스 속도가 제한됩니다. 나는 당신이 네트워크 인터페이스를 통해 트래픽을 교환하는 다른 응용 프로그램을 사용하고 있거나 다른 응용 프로그램이 없다고 wget
가정 합니다.curl
tc
TBF(토큰 버킷 필터)를 사용하여 속도를 제어합니다.
TBF의 예는 다음과 같습니다(참고문헌 1).http://www.lartc.org/manpages/tc-tbf.html):
지속 최대 속도 0.5mbit/s, 최대 속도 1.0mbit/s, 5KB 버퍼로 TBF를 연결하면 사전 버킷 큐 크기 제한이 계산되어 TBF의 지연 시간이 최대 70ms가 되고 완벽한 피크 속도 동작을 가지고 있습니다. 질문:
# tc qdisc add dev eth0 root tbf rate 0.5mbit \ burst 5kb latency 70ms peakrate 1mbit \ minburst 1540
tc와 netem을 사용하는 또 다른 예는 다음과 같습니다.http://www.linuxfoundation.org/collaborate/workgroups/networking/netem):
netem 규칙에는 기본 제공 속도 제어가 없지만 대신 속도 제어를 위해 다른 규칙 중 하나를 사용합니다. 이 예에서는 TBF(토큰 버킷 필터)를 사용하여 출력을 제한합니다.
인터페이스 eth0을 통해 들어오고 나가는 각 패킷에 대한 지연을 추가합니다.
# tc qdisc add dev eth0 root handle 1:0 netem delay 100ms
데이터 속도, 패킷 버퍼 크기 및 최대 버스트 제한을 tbf 단위로 추가합니다.
# tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
tc의 인터페이스 eth0에 할당된 규칙 목록 보기
# tc -s qdisc ls dev eth0
위 명령의 출력은 다음과 같습니다
qdisc netem 1: limit 1000 delay 100.0ms
Sent 0 bytes 0 pkts (dropped 0, overlimits 0 )
qdisc tbf 10: rate 256Kbit burst 1599b lat 26.6ms
Sent 0 bytes 0 pkts (dropped 0, overlimits 0 )
이보다 더 큰 기본값이 필요할 수 있으므로 버퍼 및 제한에 대한 옵션을 확인하세요(바이트 단위).
답변4
wget의 경우 한 번에 여러 페이지를 다운로드할 때 이 --wait
옵션을 더 쉽게 이해할 수 있습니다. 이는 wget이 요청 사이에 특정 시간(초) 동안 기다리게 하며 이는 Crawl-delay
robots.txt의 지시어와 더 일치합니다.
얻다
-w seconds
--wait=seconds
Wait the specified number of seconds between the retrievals. Use of this
option is recommended, as it lightens the server load by making the
requests less frequent. Instead of in seconds, the time can be specified
in minutes using the "m" suffix, in hours using "h" suffix, or in days
using "d" suffix.
Specifying a large value for this option is useful if the network or the
destination host is down, so that Wget can wait long enough to reasonably
expect the network error to be fixed before the retry. The waiting
interval specified by this function is influenced by "--random-wait", which
see.