Tại sao sự khác biệt giữa Speedtest và Wget?


18

Khách hàng của tôi phàn nàn về tốc độ internet thấp. Khi đo với tốc độ Speedtest.net là chấp nhận được. Tải xuống đo định kỳ là 10% đến 30% tốc độ danh nghĩa. Tôi không thể giải thích điều đó.

Một số nền tảng. Kết nối có vấn đề là ở một trong những hòn đảo Caribbean đầy nắng, nơi internet nhanh không phải là tài sản lớn nhất. Tốc độ internet gần đây đã trở nên khá, lên tới 200 Mbps. Nhưng chuyến đi khứ hồi đến (nói) Amsterdam là khoảng 180 ms.

Khách hàng có kết nối sợi 100 Mbps. Khi thực hiện speedtest trên máy Windows (speedtest.net) cho ISP CO, chúng tôi thu được 95 Mbps. Khi sử dụng bài kiểm tra tốc độ tương tự đến Amsterdam, chúng tôi đạt 60-70 Mbs. Hoàn toàn chấp nhận được.

Cách đây một thời gian, tôi đã cài đặt RasPi, định kỳ xóa một tệp từ một trong các máy chủ của tôi ở Amsterdam. Trong một trung tâm dữ liệu, được kết nối trực tiếp với AMS-IX. Sử dụng lệnh này:

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

Tệp .txt là 23 MByte số. (Trên thực tế, đây là một nhưng lớn nhất Mersenne Prime, 23e6 chữ số)

Khi tôi tải xuống tệp đó trên mạng có vấn đề, wget báo cáo điều này:

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]

Đó là cùng lúc speedtest.net báo cáo 60-70 Mbps.

Tôi biết rằng Raspi có những hạn chế của nó. Nhưng tốc độ này thay đổi dữ dội. Một lần RasPi báo cáo 11 Mbps này, lần tiếp theo 22 Mbps. Nhưng đôi khi thấp tới 1,5 Mb / giây.

nhập mô tả hình ảnh ở đây

Khi tôi thực hiện thử nghiệm này với một máy tính xách tay thực sự mạnh mẽ, tốc độ tối đa có phần cao hơn (lên tới 30 Mb / giây), nhưng cũng cho thấy mức thấp tương tự. Vì vậy, nó chỉ ra giới hạn RasPi ở phía cao, nhưng không phải là 10 Mbps ở phía thấp.

Tôi đã ban hành chính xác lệnh tương tự từ một máy chủ ở München, Đức trong một trung tâm dữ liệu. Tốc độ 96 Mbps.

Sau đó, từ một kết nối sợi 100 Mbps của người tiêu dùng ở Hà Lan: 65 Mbps.

Sau đó, tại nhà tôi có ADSL 10 Mbps danh nghĩa. Speedtest hiển thị 10Mb / giây. Wget cho 8,5 Mbps. Đó là bằng nhau trong cuốn sách của tôi.

Điều này ngăn chặn mọi giới hạn trên máy chủ hoạt động như máy chủ lưu trữ tệp.

Tôi không hy vọng rằng bất cứ ai cũng có thể chỉ ra nguyên nhân của sự chậm chạp của kết nối tại cơ sở của khách hàng. Nhưng bất cứ ai cũng có thể giải thích sự khác biệt giữa speedtest.net và wget?

Có một cái gì đó speedtest bỏ qua, hoặc nó chỉ đo các đỉnh? Hoặc là wget bị ảnh hưởng nghiêm trọng bởi thời gian ping dài?

Tôi cảm thấy rằng bài kiểm tra wget cho tốc độ thực sự, hiệu quả, trong khi speedtest chủ yếu là để hiển thị tốc độ được quảng cáo.


Một cách khác để kiểm tra tốc độ là làm ssh personal-server cat /dev/zero | pv > /dev/null, trên máy chủ cá nhân mà bạn biết không bị giới hạn tốc độ chậm hơn tốc độ bạn mong đợi.
JoL

Tôi đọc lướt câu hỏi của bạn. Và có vẻ như bạn có băng thông lớn và có thể có kịch bản trì hoãn chuyến đi khứ hồi đáng kể còn được gọi là "mạng béo dài". Tôi đã trải nghiệm loại điều này một cách cá nhân và giải quyết nó bằng cách mở ra nhiều kết nối (tôi đã sử dụng rsync). Bạn có thể thử mở nhiều trường hợp wget (thử 5, 10, 20) không? Trang Wikipedia là: sản phẩm trì hoãn băng thông.
Trevor Boyd Smith

Wget báo cáo theo byte theo mặc định: [james @ lamia root] $ wget -O / dev / null 10.32.48.1/t1 / dev / null 100% [================= ====>] 100.00M 112MB / s trong 0,9 giây [james @ lamia root] $ wget --report-speed = bits -O / dev / null 10.32.48.1/t1 / dev / null 100% [=== ==================>] 100.00M 932Mb / s trong 0.9s
james

Cân nhắc chạy máy chủ iperf cho tcp và giây cho udp trên máy được lưu trữ DC của bạn. Sau đó, như một phần của công việc định kỳ gọi một bài kiểm tra từ khách hàng của bạn và xem tốc độ so với http nhận được như thế nào.
Criggie

Đây là loại tập tin gì? Có nén được không và máy chủ có hỗ trợ nén http không? Mặc dù bạn không thể khắc phục các sự cố về băng thông, bạn có thể làm cho tệp nhỏ hơn.
Salman A

Câu trả lời:


16

Ngoài các lý do khác được đăng, các kết nối TCP không hoạt động tốt với các tệp lớn khi sản phẩm trễ băng thông trở nên lớn.

Giống như trên một kết nối nhanh chóng đến một hòn đảo.

Xem mục của Wikipedia về điều chỉnh TCP .

Vì vậy, Speedtest có thể kết xuất một tệp nhỏ thông qua kết nối với tốc độ 95 mb / giây, nhưng wgetchỉ có thể nhận được 10 mb / giây trên tệp 20 MB.


2
Đây là kiến ​​thức mới cho tôi. Rất tốt. Thật vậy, sản phẩm độ trễ băng thông cao (2,25 MB nếu tôi tính toán chính xác). Một cái nhìn nhanh cho thấy bộ đệm mặc định là 87kB và tối đa 3,5 MB. (Tôi giả sử Byte không phải bit). Tôi phải đi sâu hơn vào vấn đề này để đánh giá nó tốt hơn. Nếu, trong kết hợp speedtest tải xuống rất nhiều tệp nhỏ và ghi lại tốc độ tối đa trên đó, nó giải thích rất nhiều.
Hans Linkels

21

Các ISP thường ưu tiên lưu lượng truy cập vào speedtest.net để họ có thể khoe khoang tốc độ kết nối của họ nhanh như thế nào, trong khi thực tế, họ không cung cấp nhiều băng thông như vậy. Họ hoàn toàn biết rằng hầu hết người dùng sẽ chỉ kiểm tra trang web đó để xác nhận.

Bạn cũng phải lưu ý rằng tốc độ truyền phụ thuộc cả vào máy khách máy chủ. Trong thế giới ngày nay, hầu hết các máy chủ đều tăng tốc theo cách này hay cách khác.

Cuối cùng, thật vô nghĩa khi mong đợi băng thông ổn định cho các kết nối ở nước ngoài. Không có điều đó. Nó phải đi qua vô số công tắc, sợi, trung tâm dữ liệu để đến vị trí cuối cùng. Và tất cả chỉ cần một phần chuyển động để làm chậm.


Tôi hiểu các tuyên bố của bạn, ngoại trừ điều tiết ở phía máy chủ. Đó là máy chủ của riêng tôi và khi máy khách ở một trung tâm dữ liệu khác (cách khoảng 1200km), tốc độ luôn ở mức 95 Mbps. Ngay cả khi máy khách ở trên kết nối người tiêu dùng 100 Mb, nó là 65 Mbps.
Hans Linkels

9
Bạn có thể làm tài liệu bạn yêu cầu? "Các ISP thường ưu tiên lưu lượng truy cập đến speedtest.net"
Soleil

1
@Soleil Không mất quá nhiều Googling: myce.com/news/ trộm
MonkeyZeus

6
Một ISP ưu tiên lưu lượng tốc độ cao nhất có thể giống như một nhà sản xuất ô tô lớn giả mạo các bài kiểm tra khí thải.
Barmar

3
Thông thường, tôi đã từng có thể 'sửa chữa' một luồng Super Bowl nói lắp bằng cách gửi lưu lượng truy cập đến speedtest.net liên tục từ Raspberry Pi. Có vẻ như họ ưu tiên toàn bộ kết nối của tôi miễn là có lưu lượng truy cập nhanh nhất - sự khác biệt giữa ngày và đêm. Đó không phải là nhiều bằng chứng cho thấy các ISP làm những thứ mờ ám, nhưng đó là thứ gì đó.
Hoàn tác

7

wgetđưa ra các biện pháp thực tế tốt của tốc độ. Các thử nghiệm của Speedtest có thể bao gồm loại song song có thể giải thích các con số cao hơn.

Để kiểm tra tốc độ trung bình tốt, tôi nghĩ thời gian tải xuống ít nhất là 90-120 giây (để có được mức trung bình tốt)


Tôi đang làm việc để cài đặt một máy tính đăng nhập mạnh mẽ hơn và để tăng kích thước tệp.
Hans Linkels

Bạn có thể phát triển "loại song song" không? Tôi không thấy bất kỳ cách / lý do nào vì có kết nối tiên nghiệm 1.
Soleil

1
@Soleil, IMHO họ tải xuống một vài tệp, không chỉ một. Bạn có thể kiểm tra nó bằng cách chạy vài cái wgetvà tính tổng tốc độ
Romeo Ninov

1
Tôi có thể song song đo lường của mình, nhưng lợi ích là gì? Tôi đã chứng minh rằng các khách hàng khác đạt tốc độ tối đa. Sự khác biệt là kết nối có vấn đề có độ trễ 180 ms. Các kết nối nhanh <10 ms. Song song sẽ làm giảm hiệu ứng độ trễ? Chỉ cần hỏi.
Hans Linkels

1
@RomeoNinov Tôi đã kiểm tra, không có sự song song như vậy (speedtest.net). Một tệp cho mỗi lần tải lên và một tệp cho mỗi lần tải xuống ([1-2] MB mỗi tệp).
Soleil

3

Một lý do có thể là thường không thể đạt được tốc độ tối đa chỉ bằng một kết nối TCP.

Speedtest.net gần đây đã giới thiệu một chế độ kết nối duy nhất. Hãy thử điều này và xem nếu nó làm cho một sự khác biệt.

Sau đó, để tải xuống, ví dụ aria2 với các tham số để sử dụng nhiều kết hợp và so sánh. ví dụ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

Sử dụng Fast.com Internet Speed ​​Test , đây là bài kiểm tra tốc độ dựa trên Netflix có nghĩa là nó không thể được phân biệt bởi các ISP từ chính Netflix.

Đây là một thử nghiệm chính xác hơn bất kỳ thử nghiệm khác nói chung. Mọi người sẽ không lo lắng về việc trang web tải nhanh như thế nào, mà là bộ đệm video nhanh như thế nào do băng thông tăng cần thiết để hiển thị video.

Các ISP thường tăng tốc độ dựa trên miền mà ai đó đang kết nối nếu đó là kiểm tra tốc độ hoặc sử dụng cổng 8080. Trong khi Netflix sử dụng cổng 80, cổng chậm hơn khi được ưu tiên.


1
"có nghĩa là không thể phân biệt được ISP bởi chính Netflix" - Điều đó không đúng, ISP chắc chắn có thể thấy cả yêu cầu DNS và SNI trên kết nối HTTPS.
Kevin

@Kevin fast.com liên hệ với các máy chủ netflix để tải xuống, nghĩa là nó mô phỏng các video từ chính Netflix. Mặc dù tôi sẽ cấp cho bạn các ISP có thể nắm bắt được thực tế là việc kết nối với trang web cụ thể mà sau đó liên lạc với các máy chủ dựa trên Netflix yêu cầu mức độ ưu tiên tương tự như speedtest.net
Jonathan

Nó không chính xác là khoa học tên lửa. Tất cả những gì họ phải làm là giải mã Netflix trong vài phút hoặc vài giờ sau khi họ thấy kết nối fast.com. Tất nhiên, ưu điểm là bạn có thể truy cập fast.com để tự giải thoát, sau đó đóng tab và xem Netflix thật.
Kevin

Cá nhân tôi nghi ngờ nó là khoa học máy tính hoặc ít nhất là liên quan đến nó chứ không phải là khoa học tên lửa. Có vẻ như một số ISP lớn hơn (ví dụ như Bell) đã không bắt kịp fast.com trong vài năm qua. Dù bằng cách nào, chạy tập lệnh trên máy tính của bạn kết nối với fast.com để tăng tốc độ tải xuống của bạn trong khi điều chỉnh quá tệ sẽ đủ khả thi.
Jonathan

0

Có phải tôi hay không ai để ý anh ấy nói Mbps và danh sách lệnh wget "MB / s".

60mbp / s và thực sự nhận được 11,2Mb là bình thường.

Mbps và MB / s là hai tốc độ khác nhau.

"Megabit có kích thước bằng 1/8 Megabyte, nghĩa là để tải xuống tệp 1 MB trong 1 giây, bạn sẽ cần kết nối 8 Mbps." Vì vậy, 11mbx8 = 88mbps ... 11.2Mb thực sự tốt cho báo cáo kết nối 60-70mbps.

Là những người có trí nhớ mất đi đáng sợ này. Bạn sẽ không bao giờ nhận được 70mb / giây với tốc độ nhanh nhất là 70Mbps


Đầu ra của wgetMb / s có nghĩa là Megabits / s . MB / s sẽ dịch sang MegaBytes / s . Chỉ cần chạy wgetlệnh của riêng bạn và xác minh kết quả.
Thomas

1
@james: Có theo mặc định, nhưng trong OP wgetlệnh bao gồm --report-speed=bitskết quả trong Mb/sđó Mbit/s. Chạy mà không --report-speed=bitscho MB/smà dịch MByte/s. Lưu ý bB.
Thomas
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.