Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Windows 10

Sử dụng iPerf kiểm tra tốc độ và băng thông mạng (Throughput)

IPerf là công cụ mã nguồn mở thiết kế để kiểm tra băng thông mạng giữa hai nút mạng. iPerf cho phép tạo traffic/tải TCP và UDP giữa hai host. Bạn có thể dùng iPerf nhanh chóng đo băng thông mạng tối đa (throughput) giữa server và client, kiểm tra stress kênh truyền ISP, router, gateway mạng (tường lửa), mạng Ethernet hoặc Wi-Fi.

Trong bài này, chúng ta sẽ chỉ cách cài đặt và dùng iPerf kiểm tra throughput mạng trên Windows và Linux CentOS (có phiên bản iPerf cho Android, MacOS, RouterOS từ MikroTik và nền tảng khác).

Các phiên bản iPerf: iPerf2 vs iPerf3

IPerf là công cụ đa nền tảng và không yêu cầu cài đặt, chỉ cần copy và chạy trên hai thiết bị muốn test throughput.

IPerf hoạt động chế độ server-client. Trên thiết bị đầu tiên, iPerf chạy ở chế độ server (chờ traffic từ client iPerf). Trên máy thứ hai, iPerf chạy chế độ client, tạo traffic TCP hoặc UDP và đo tốc độ truyền dữ liệu tối đa.

Hiện có hai nhánh iPerf phát triển song song: iPerf2 và iPerf3. Chức năng các công cụ này phần lớn tương thích, nhưng dùng cổng mạng mặc định khác nhau. iPerf1/2 dùng 5001, iPerf3 dùng 5201.

  • iPerf2 ưu tiên dùng cho luồng song song, test hai chiều, và phiên bản này được hỗ trợ chính thức trên Windows OS;
  • iPerf3 có triển khai tốt hơn test UDP tốc độ cao. Mã iPerf3 nhỏ hơn và tối ưu hơn.

Các khác biệt còn lại không quá quan trọng, nên không cần dùng phiên bản iPerf cụ thể (thậm chí tham số CLI giống nhau). Trong bài này chúng ta dùng iperf3.

iPerf3 không được hỗ trợ chính thức cho nền tảng Windows, nhưng chạy khá tốt. Tôi không nhận thấy lỗi rõ ràng. Bạn có thể gửi báo cáo lỗi tới https://github.com/esnet/iperf.

Cách cài iPerf trên Windows

Bạn có thể tải iPerf 3.1.3 cho Windows từ link https://iperf.fr/iperf-download.php. Nếu muốn dùng iPerf 2.0 – tải tại đây. Không cần cài đặt công cụ, chỉ cần tải archive iPerf và giải nén vào thư mục cục bộ. Trong archive chỉ có hai file: cygwin1.dll và iperf3.exe.

Có một số triển khai GUI iPerf cho Windows. Ví dụ, Iperf3-Cygwin-GUI hoặc jperf.

jperf viết bằng Java (để chạy jperf, Java VM phải cài trên máy). Ngoài giao diện đồ họa cho CLI, Jperf vẽ biểu đồ băng thông kênh truyền real-time.

Để dùng, chỉ cần chỉ định địa chỉ iPerf server và chạy scan.

Có mô-đun iPerfAutomate riêng trong PowerShell Script Gallery dùng để lấy chỉ số hiệu suất mạng từ script PowerShell. Cài mô-đun bằng lệnh: Install-Module -Name iPerfAutomate

Cài iPerf trên CentOS Linux

Trên CentOS 8, gói iperf3 có trong repository base AppStream (trên CentOS 7 tìm iperf3 trong repo EPEL). Cài bằng lệnh dnf (yum):

# dnf install iperf3

Trên Debian/Ubuntu cài iperf3 bằng lệnh:

sudo apt install iperf3

Nếu muốn dùng instance Linux làm iperf3 server, cần mở cổng TCP/UDP 5201 trong firewalld (iptables):

# firewall-cmd --permanent --add-port=5201/udp
# firewall-cmd --permanent --add-port=5201/tcp
# firewall-cmd --reload

Dùng lệnh iPerf đo tốc độ/băng thông mạng

Hãy xem vài ví dụ dùng iPerf test throughput mạng. Ví dụ này dùng host Linux CentOS làm iPerf server. Chạy iPerf3 chế độ server:

# iperf3 –s

iPerf server chạy, chờ kết nối trên cổng TCP 5201.

Server listening on 5201.

Mẹo. Tham số iPerf phân biệt chữ hoa/thường!

Tùy cài đặt tường lửa giữa client và server, bạn có thể đổi cổng lắng nghe bằng tham số -p [port_number]. Bạn có thể chạy iPerf server với TCP window size lớn và cổng TCP khác. Dùng lệnh:

# iperf3 -s -w 32768 –p 5200
  • -w 32768 – đặt TCP window size 32 kB (mặc định ~8 kB)
  • –p 5200 – cổng iPerf chờ kết nối (nhắc lại iperf2 mặc định cổng 5001, iperf3 cổng 5201).

Tôi dùng máy Windows 10 làm iPerf client. Mở command prompt, vào thư mục chứa iPerf:

cd c:\tools\iperf

Để chạy test băng thông từ client, chỉ định địa chỉ iPerf server (hoặc tên DNS):

iperf3.exe -c 192.168.1.200

Nếu khởi động iPerf server với TCP window size tăng, dùng lệnh sau để có tải tối đa:

iperf3.exe -c 192.168.1.200 -P 8 -t 30 -w 32768
  • -c 192.168.1.200 – IP iPerf server;
  • -w 32768 – tăng TCP window size;
  • -t 30 – thời gian test tính bằng giây (mặc định 10 giây);
  • -P 8 – số luồng song song (streams) để có tải kênh tối đa;

Trong ví dụ, test kéo dài 30 giây. Trong báo cáo cuối, ta quan tâm giá trị cột Bandwidth ở dòng [SUM] cuối. Trong trường hợp này băng thông trung bình giữa hai host là 85.9 Mbit/s. 307 MB dữ liệu được truyền (Transfer) với tốc độ đối xứng (sender=receiver).

Dùng tham số -f đổi định dạng tốc độ (bit, kilobit, megabit). Trong test liên tục, khi ước lượng hiệu suất vài phút (giờ), dùng tùy chọn –i đặt chu kỳ hiển thị kết quả trung gian.

Bạn có thể chạy iPerf chế độ ngược (server gửi dữ liệu, client nhận). Dùng tùy chọn –R trên client.

Mặc định tiện ích tạo traffic TCP, nếu cần kiểm tra băng thông cho gói UDP, dùng tùy chọn –u. Lúc này khởi động iPerf server bằng lệnh: iperf3 -s –u.

Nếu cần test băng thông ISP, dùng một trong các public iPerf server (danh sách public host iPerf tại đây):

iperf3 -c iperf.scottlinux.com

Nếu cần đo tốc độ mạng tối đa hai chiều (chế độ duplex), dùng tùy chọn –d trên client:

iperf3.exe -c IP -P 8 -t 30 -w 32768 –d

Trong test mạng dùng iPerf, bạn có thể theo dõi biểu đồ throughput kết nối qua Task Manager.

Lưu quan trọng: trong test, iPerf dùng tất cả băng thông khả dụng của kênh giữa client và server, có thể ảnh hưởng tiêu cực đến app và user production.

Hiển thị danh sách đầy đủ tùy chọn:

iperf3 –help

Iperf là tiện ích mạng dễ dùng, tiện lợi giúp đo hiệu suất kết nối và tốc độ truyền dữ liệu tối đa giữa hai thiết bị.