명령줄에서 호스트의 네트워크 전송 속도를 측정하는 방법은 무엇입니까?

명령줄에서 호스트의 네트워크 전송 속도를 측정하는 방법은 무엇입니까?

명령줄에서 호스트의 대역폭을 측정하고 싶습니다.

많은 호스트가 인터넷에 접속되어 있으며 내 통제 범위를 벗어났습니다. 이는 실제 인터넷 연결 대역폭을 테스트하는 데 사용됩니다. 서버 측 설정 방법에 따라 사이트 연결이 총 대역폭보다 느릴 수 있음을 이해합니다. 몇 개의 신뢰할 수 있는 호스트에서 속도 테스트를 실행하여 이를 직접 제어할 계획입니다.

google.com에 대한 SSH 액세스 권한이 없기 때문에 SCP와 같은 솔루션은 작동하지 않습니다.

또한 내가 제어하는 ​​LAN의 호스트에도 사용할 것입니다. 따라서 이상적인 솔루션은 웹페이지에서 리소스를 다운로드하는 것이며, 테스트 방법과 호환되도록 만들기 위해 더미 웹사이트를 사용하여 nginx를 실행할 수 있습니다.

내 목표는 내 인터넷 연결을 진단하는 것입니다. 나는 인터넷 연결 대역폭과 라우터 연결 대역폭을 비교하고 싶고, 시간이 지남에 따라 이 작업을 여러 번 수행하여 하루 중 느린 시간이 있는지 확인하고 싶습니다. 속도 테스트 중에 실행되는 다른 프로그램이 결과를 왜곡할 수 있다는 것을 알고 있지만, 데이터를 분석할 때 이 문제를 처리할 의향이 있습니다.

이전에 나는속도 테스트 CLI그러나 이것은 매우 제한적입니다. 해당 회사 서버만 사용하고, 시간도 오래 걸리며, LAN 대역폭을 테스트하는 데에는 사용할 수 없습니다.

답변1

많은 호스트가 인터넷에 접속되어 있으며 내 통제 범위를 벗어났습니다.

당신은 기본적으로 할 수 없습니다. 다른 호스트는 귀하와 협력해야 합니다. 즉, 귀하가 만든 HTTP 요청(즉, 파일을 다운로드할 때)에 대한 응답으로 데이터를 보낸다는 의미입니다. 하지만 연결이 허용하는 한 빨리 이 작업을 수행할 것이라고 믿어야 합니다. 일반적으로 더 큰 HTTP 서버는 이 작업을 수행하지 않습니다. 트래픽 조절 기능이 있습니다(특정 금액까지는 연결 대역폭에 대해 비용을 지불한다는 점을 고려해야 하며 트래픽이 있는 서버는 작은 요청이 처리되면 사라집니다. 이는 2GB 요청보다 25% 빠릅니다.

다른 호스트는 대용량 파일에 유용한 HTTP 또는 기타 서비스를 전혀 제공하지 않거나 대용량 파일을 전혀 제공하지 않습니다. 작은 파일은 선택 사항이 아니며 승인 오버헤드가 상당합니다.

Speedtest CLI를 사용했지만 이는 매우 제한적입니다. 그 회사 서버만 사용하는데 시간이 오래 걸리네요

글쎄, 이 모든 것 뒤에 있는 비즈니스 구조가 무엇인지는 모르지만 이러한 서버는 신뢰할 수 있는 테스트를 실행하는 데 필요한 트래픽에 대해 기꺼이 비용을 지불하려는 사람들일 뿐입니다. 이는 본질적으로 테스트가 1초 이내에 완료될 수 없음을 의미합니다. 연결 시간 오버헤드가 있을 뿐만 아니라 ISP 측의 활성 트래픽 조절도 있습니다.

그래서 당신은 불가능한 것을 원하는 것 같습니다.

다행스럽게도 당신은 쓸모없는 것을 원한다고 생각합니다. 애플리케이션 수준의 안정성과 처리량 측정을 원한다면다른 것이 아닌 애플리케이션을 측정하세요. 즉, YouTube가 얼마나 빠른지 알고 싶다면 yt-dlp(또는 다른 YouTube 클라이언트)를 사용하여 rickroll 동영상을 다운로드하세요. SSH 연결이 작동하는지 테스트하려면 SSH 테스트를 수행하세요. IMAP 서버 연결이 얼마나 잘 작동하는지 테스트하려면 20000개의 메시지가 포함된 메일 ​​폴더 목록을 가져와서 시간을 측정한 다음 새 폴더를 만들고 20MB의 메시지를 넣은 다음 해당 폴더와 폴더를 다시 삭제한 다음, 시간이 온다. DNS 확인이 얼마나 잘 수행되는지 알고 싶다면 DNS 확인자에게 확인을 요청하세요.
이로 인해 다양한 서비스를 제공하는 다양한 서버에 대해 직접 비교할 수 있는 수치가 나오나요? 습관.
이 숫자가 실제로 귀하의 사용량에 어떤 의미가 있습니까? 예!

또한 내가 제어하는 ​​LAN의 호스트에도 사용할 것입니다.

LAN 대역폭을 테스트하려는 경우: 이는 단지 네트워크 카드와 스위치의 기능일 뿐입니다. 25Gb/s보다 빠른 NIC를 처리하지 않는 한(거의 언급하고 있는 것으로 확신함) 최대 패킷 크기를 사용하고 과도한 주기적인 승인을 피하면 최신 PC는 LAN의 회선 속도를 포화시킬 수 있습니다. 패킷의 .

특정 응용 프로그램 요청(예: SMB/CIFS 파일 공유, 비디오 스트리밍, 백업 수신)에 반응하는 컴퓨터의 능력을 테스트하려면 해당 실제 응용 프로그램을 다시 테스트하십시오.

실제로 스트레스 테스트를 하려는 상황에서는네트워크 스택(애플리케이션 수준의 소프트웨어/OS/하드웨어 협업이 아닌) iperf3아마도 명령줄 애플리케이션을 선택할 것입니다. 그러나 고의적으로 비효율적(작은 패킷, 짧은 경합 창, 인위적인 패킷 손실)으로 구성을 설정하지 않는 한 최신 PC는 눈 하나 깜빡하지 않고도 1Gb/s 이더넷 네트워크를 포화 상태로 만들 수 있습니다.

관련 정보