왜 Speedtest와 Wget의 불일치가 발생합니까?


18

고객이 인터넷 속도가 느리다고 불평합니다. Speedtest.net 속도로 측정하면 허용됩니다. 주기적으로 측정 된 다운로드는 공칭 속도의 10 % ~ 30 %입니다. 나는 그것을 설명 할 수 없다.

일부 배경. 빠른 인터넷이 가장 큰 자산이 아닌 햇볕이 잘 드는 카리브해 섬 중 하나에 문제가 있습니다. 최근 인터넷 속도는 최대 200Mbps로 적당했습니다. 그러나 암스테르담으로 핑 왕복 여행은 약 180ms입니다.

고객이 100Mbps 파이버 연결을 가지고 있습니다. Windows 컴퓨터 (speedtest.net)에서 ISP CO에 대한 속도 테스트를 수행 할 때 95Mbps를 얻습니다. 암스테르담에서 동일한 속도 테스트를 사용할 때 우리는 60-70 Mbs에 도달합니다. 완전히 허용됩니다.

얼마 전에 저는 암스테르담에있는 서버 중 하나에서 주기적으로 파일을 가져 오는 RasPi를 설치했습니다. AMS-IX에 직접 연결된 데이터 센터에서. 이 명령을 사용하여 :

wget -O /dev/null --report-speed=bits http://aserv.example.net/~myuser/links/M77232917.txt

.txt 파일은 23MB입니다. (실제로 가장 큰 메르 센 프라임, 23e6 자리)

문제가있는 네트워크에서 해당 파일을 다운로드하면 wget에서 다음을보고합니다.

dev/null 100%[====================================================================>]  22.81M  11.6Mb/s   in 17s    

2019-02-08 14:27:55 (11.2 Mb/s) - ‘/dev/null’ saved [23923322/23923322]

그것은 동시에 speedtest.net이 60-70 Mbps를보고합니다.

Raspi에 한계가 있음을 알고 있습니다. 그러나이 속도는 크게 다릅니다. 한 번 RasPi가이 11Mbps를보고하면 다음 번에는 22Mbps를보고합니다. 그러나 때로는 1.5Mbps만큼 낮습니다.

여기에 이미지 설명을 입력하십시오

정말 강력한 랩톱으로이 테스트를 수행하면 최고 속도는 다소 높지만 (최대 30Mbps) 낮은 속도도 나타납니다. 따라서 이는 높은 쪽에서는 RasPi 제한을 나타내지 만 낮은 쪽에서는 10Mbps는 아닙니다.

데이터 센터의 독일 뮌헨에있는 서버에서 정확히 같은 명령을 내 렸습니다. 속도 96Mbps

그런 다음 네덜란드의 소비자 100 Mbps 파이버 연결에서 : 65 Mbps.

그런 다음 공칭 10 Mbps ADSL이있는 집에서. 속도 테스트는 10Mbps를 보여줍니다. Wget은 8.5Mbps를 제공합니다. 내 책에서 동등한 것입니다.

이로 인해 파일 다운로드의 호스트 역할을하는 서버에 대한 제한이 없습니다.

누구든지 고객 구내에서 연결 속도 저하의 원인을 지적 할 수는 없습니다. 그러나 누구나 speedtest.net과 wget의 불일치를 설명 할 수 있습니까?

속도 테스트에서 무시하는 것이 있습니까, 아니면 피크 만 측정합니까? 아니면 핑 시간이 길어 wget이 심각한 영향을 받습니까?

wget 테스트는 실제적이고 효과적인 속도를 제공하는 반면 speedtest는 주로 광고 속도를 보여주는 것이라고 생각합니다.


속도를 확인하는 또 다른 방법 ssh personal-server cat /dev/zero | pv > /dev/null은 개인 서버에서 예상 속도보다 속도가 느리지 않다는 것을 알고 있습니다.
JoL

나는 당신의 질문을 감추었습니다. 또한 대역폭이 길고 "긴 지방 네트워크"라고도하는 상당한 왕복 지연 시나리오가있는 것 같습니다. 나는 개인적으로 이런 종류의 경험을했고 많은 연결을 열어서 해결했습니다 (rsync를 사용했습니다). 많은 wget 인스턴스를 열어 볼 수 있습니까 (5, 10, 20 시도)? Wikipedia 페이지는 대역폭 지연 제품입니다.
Trevor Boyd Smith

기본적으로 보고서를 바이트 단위로 표시 : [james @ lamia root] $ wget -O / dev / null 10.32.48.1/t1 / dev / null 100 % [=================== ====>] 0.9 초 동안 100.00M 112MB / s [james @ lamia root] $ wget --report-speed = bits -O / dev / null 10.32.48.1/t1 / dev / null 100 % [=== ===================]] 0.9s에서 100.00M 932Mb / s
제임스

DC 호스트 시스템에서 tcp에 대해 iperf 서버를 실행하고 udp에 대해 두 번째 서버를 실행 하십시오. 그런 다음 cron 작업의 일부로 클라이언트에서 테스트를 호출하여 http get과 속도가 어떻게 비교되는지 확인하십시오.
Criggie

어쨌든 어떤 파일입니까? 압축 가능하고 서버가 http 압축을 지원합니까? 대역폭 문제를 해결할 수는 없지만 파일을 더 작게 만들 수 있습니다.
살만 A

답변:


16

게시 된 다른 이유 외에도 대역폭 지연 제품 이 커지면 TCP 연결이 큰 파일에서 제대로 작동하지 않습니다 .

그렇지 않으면 섬에 대한 빠른 연결처럼.

TCP 조정에 관한 Wikipedia의 항목을 참조하십시오 .

따라서 Speedtest는 95mb / sec의 연결을 통해 작은 파일을 덤프 할 수 있지만 wget20MB 파일에서는 10mb / sec 만 얻을 수 있습니다.


2
이것은 저에게 새로운 지식입니다. 아주 좋아요 실제로 대역폭 지연 제품은 높습니다 (제대로 계산하면 2.25MB). 간략히 살펴보면 기본 버퍼 87kB와 최대 3.5MB가 나타났습니다. (Byte가 아닌 것으로 가정합니다). 나는 그것을 더 잘 평가하기 위해 이것에 대해 더 깊이 뛰어 들어야한다. speedtest와 함께 작은 파일을 많이 다운로드하고 그에 대한 최대 속도를 기록하면 많은 설명이됩니다.
Hans Linkels

21

ISP는 종종 speedtest.net에 트래픽 우선 순위를 지정하여 연결 속도를 자랑 할 수 있지만 실제로는 그다지 많은 대역폭을 제공하지 않습니다. 그들은 대부분의 사용자가 해당 사이트를 확인하기 위해서만 검사한다는 것을 완벽하게 알고 있습니다.

또한 전송 속도는 클라이언트 서버 모두에 의존한다는 점을 명심해야 합니다. 오늘날의 세계에서 대부분의 서버는 어떤 식 으로든 스로틀합니다.

마지막으로 해외 연결에 안정적인 대역폭을 기대하는 것은 의미가 없습니다. 그런 것은 없습니다. 최종 위치에 도달하려면 무한한 수의 스위치, 파이버, 데이터 센터를 거쳐야합니다. 그리고 속도를 늦추기 위해 움직이는 부분 하나만 있으면됩니다.


서버 측에서의 제한을 제외하고 귀하의 진술을 이해합니다. 그것은 내 자신의 서버이며 클라이언트가 다른 데이터 센터 (약 1200km 거리)에있을 때 속도는 지속적으로 95Mbps입니다. 클라이언트가 100Mb 소비자 연결에 있더라도 65Mbps입니다.
Hans Linkels

9
당신은 당신이 주장을 문서화 할 수 있습니까? "ISP는 종종 speedtest.net에 트래픽을 우선시합니다"
Soleil

1
@Soleil 너무 많은 인터넷 검색을하지 않았다 : myce.com/news/…
MonkeyZeus

6
가장 빠른 트래픽을 우선시하는 ISP는 배출량 테스트를 실시하는 주요 자동차 제조업체만큼 가능성이 높습니다.
Barmar

3
일화 적으로, 나는 한때 Raspberry Pi에서 speedtest.net으로 반복해서 트래픽을 보내서 끊김없는 Super Bowl 스트림을 '고정'할 수있었습니다. 밤과 낮의 차이가 가장 빠른 트래픽이 존재하는 한 그들이 내 전체 연결의 우선 순위를 정한 것 같습니다. ISP가 그늘진 일을한다는 증거는 많지 않지만 무언가입니다.
실행 취소

7

wget속도를 실용적으로 측정하십시오. Speedtest의 테스트에는 더 많은 숫자를 설명 할 수있는 일종의 병렬 처리가 포함됩니다.

좋은 평균 속도 테스트를 위해서는 다운로드 시간이 90-120 초 이상이어야한다고 생각합니다 (좋은 평균을 얻으려면)


더 강력한 로깅 컴퓨터를 설치하고 파일 크기를 늘리기 위해 노력하고 있습니다.
Hans Linkels

"병행 성"을 개발할 수 있습니까? priori 1 연결이 있기 때문에 어떤 방법 / 이유도 보이지 않습니다.
Soleil

1
@Soleil, IMHO 그들은 하나의 파일뿐만 아니라 적은 파일을 다운로드합니다. 몇 wget
번만

1
측정을 병렬화 할 수 있지만 이점은 무엇입니까? 나는 이미 다른 고객들이 최고 속도에 도달했음을 보여 주었다. 차이점은 문제가있는 연결의 대기 시간이 180ms라는 것입니다. 빠른 연결 <10ms 병렬로 지연 시간 효과가 감소합니까? 그냥 물어 보는 건데.
Hans Linkels

1
@RomeoNinov 내가 확인했지만 그러한 병렬 처리는 없습니다 (speedtest.net). 업로드 당 하나의 파일과 다운로드 당 하나의 파일 (각 [1-2] MB).
Soleil

3

한 가지 이유는 단일 TCP 연결로 최대 속도에 도달 할 수없는 경우가 많습니다.

Speedtest.net은 최근 단일 연결 모드를 도입했습니다. 이것을 시도하고 차이가 있는지 확인하십시오.

그런 다음 다운로드의 경우 여러 연결을 사용하고 비교할 매개 변수와 함께 aria2 를 사용하십시오. 예 :aria2c -d /dev -o null --allow-overwrite=true --file-allocation=none --max-connection-per-server=8 --min-split-size=1M http://aserv.example.net/~myuser/links/M77232917.txt


2

Fast.com 인터넷 속도 테스트를 사용하십시오. 이는 Netflix 기반 속도 테스트이므로 ISP가 Netflix 자체와 차별화 할 수 없습니다.

이것은 일반적으로 다른 테스트보다 더 정확한 테스트입니다. 사람들은 웹 페이지로드 속도에 대해 걱정하지 않고 비디오를 표시하는 데 필요한 대역폭이 증가하여 비디오가 얼마나 빨리 버퍼링되는지 걱정하지 않습니다.

ISP는 속도 테스트 또는 포트 8080을 사용하는 경우 누군가가 연결하는 도메인을 기준으로 속도를 높이는 경우가 많습니다. Netflix는 포트 80을 사용하는 반면 우선 순위를 정할 때는 속도가 느립니다.


1
"ISP가 Netflix 자체와 구별 할 수 없음을 의미"-사실 ISP는 HTTPS 연결에서 DNS 요청과 SNI를 모두 볼 수 있습니다.
케빈

@Kevin fast.com은 netflix 서버에 접속하여 다운로드하여 netflix 자체의 비디오를 에뮬레이트합니다. ISP가 이후에 Netflix 기반 서버에 접속하는 특정 사이트에 연결하려면 speedtest.net과 비슷한 우선 순위가 필요하다는 사실을 알게 될 것입니다.
Jonathan

로켓 과학이 아닙니다. Fast.com 연결을 확인한 후 몇 분 또는 몇 시간 동안 Netflix를 풀기 만하면됩니다. 물론 단점은 fast.com을 방문하여 방해받지 않고 탭을 닫고 Netflix를 실제로 볼 수 있다는 것입니다.
케빈

개인적으로 나는 그것이 컴퓨터 과학이거나 로켓 과학보다는 적어도 그것과 관련이 있다고 생각합니다. 더 큰 ISP (예 : Bell)가 지난 몇 년 동안 fast.com에 걸리지 않은 것 같습니다. 스로틀 링이 나쁘면 다운로드 속도를 조금씩 높이기 위해 fast.com에 연결하는 스크립트를 컴퓨터에서 실행하는 것이 가능합니다.
Jonathan

0

그가 Mbps인지 wget 명령 목록 "MB / s"라고 말한 적이 있습니까?

60mbp / s이고 실제로 11.2Mb를 얻는 것은 정상입니다.

Mbps와 MB / s는 서로 다른 속도입니다.

"메가 비트는 메가 바이트의 1/8 크기이므로 1 초에 1MB 파일을 다운로드하려면 8Mbps의 연결이 필요합니다."따라서 11mbx8 = 88mbps ... 11.2Mb는 실제로 연결보고에 적합합니다. 60-70mbps.

기억력이있는 사람들이이 사실을 잊어 버리고 있습니까? 70Mbps의 속도 테스트 속도로 70mb / s를 얻을 수 없습니다


의 출력 wgetMB / S 로 변환 메가 비트 / 초 . MB / sMegaBytes / s로 변환됩니다 . 자신의 wget명령을 실행하고 결과를 확인하십시오.
토마스

1
@james : 기본적으로 그렇습니다. 그러나 OP에서는 wget명령에 --report-speed=bits있는 결과가 Mb/s포함됩니다 Mbit/s. 없이 실행 --report-speed=bits하면 MB/s로 번역됩니다 MByte/s. b및을 참고하십시오 B.
토마스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.