Đo tốc độ truyền giữa hai máy chủ Ubuntu bằng iperf

Để đo tốc độ truyền giữa hai máy chủ Ubuntu bằng iperf, bạn có thể thực hiện theo các bước dưới đây. Đây là hướng dẫn nâng cao, bao gồm cả các tùy chọn tối ưu và cách phân tích kết quả chi tiết.

1. Cài đặt iperf3

Đảm bảo rằng cả hai máy chủ đã cài đặt iperf3 (phiên bản mới nhất hiện tại là iperf3). Chạy lệnh sau trên cả hai máy chủ:

sudo apt update
sudo apt install iperf3 -y

2. Thiết lập máy chủ và máy khách

Sử dụng mô hình Client-Server, trong đó một máy sẽ là máy chủ (server) và máy còn lại sẽ là máy khách (client).

Máy chủ (Server)

Trên máy chủ, mở cổng và chạy iperf3 ở chế độ lắng nghe:

iperf3 -s
  • Chạy với quyền root nếu muốn thử nghiệm trên các cổng thấp (<1024).
  • Cổng mặc định của iperf35201. Nếu cần sử dụng cổng khác, thêm tùy chọn -p <port_number>. Ví dụ:
iperf3 -s -p 12345

Máy khách (Client)

Trên máy khách, kết nối tới máy chủ bằng địa chỉ IP của máy chủ và cổng được sử dụng:

iperf3 -c <server_ip>

Ví dụ:

iperf3 -c 192.168.1.100

3. Các tùy chọn nâng cao cho iperf3

a. Điều chỉnh băng thông (-b)

Nếu bạn muốn giới hạn băng thông truyền dữ liệu (phù hợp khi kiểm thử QoS hoặc kết nối WAN), sử dụng tùy chọn -b. Đơn vị có thể là K, M, hoặc G cho Kbps, Mbps, và Gbps tương ứng.

iperf3 -c <server_ip> -b 500M

b. Thử nghiệm UDP thay vì TCP (-u)

Mặc định, iperf3 chạy với giao thức TCP. Nếu muốn thử nghiệm với UDP (phù hợp với các ứng dụng thời gian thực), thêm -u vào lệnh:

iperf3 -c <server_ip> -u -b 100M

Lưu ý: Khi thử nghiệm UDP, iperf3 sẽ cung cấp thêm thông tin về gói tin bị mất (packet loss) và độ trễ (latency).

c. Chạy thử nghiệm song song (-P)

Để tối ưu hóa và kiểm tra khả năng truyền tải đồng thời, bạn có thể chạy nhiều luồng (parallel streams) với tùy chọn -P. Ví dụ, để mở 10 luồng truyền tải:

iperf3 -c <server_ip> -P 10

d. Tăng kích thước cửa sổ TCP (-w)

Thay đổi kích thước cửa sổ TCP có thể giúp cải thiện tốc độ trên các kết nối có độ trễ cao (High-Latency, High-Bandwidth). Ví dụ, đặt cửa sổ TCP là 1MB:

iperf3 -c <server_ip> -w 1M

e. Thay đổi thời gian kiểm thử (-t)

Mặc định, iperf3 chạy kiểm thử trong 10 giây. Để tùy chỉnh thời gian kiểm thử, thêm -t với số giây mong muốn:

iperf3 -c <server_ip> -t 60

4. Phân tích kết quả kiểm thử iperf3

  • Transfer: Tổng lượng dữ liệu đã truyền trong khoảng thời gian kiểm thử.
  • Bandwidth: Băng thông đo được (đơn vị mặc định là Mbits/giây).
  • Jitter (cho UDP): Độ trễ giữa các gói tin, thường dùng để đo độ ổn định của kết nối.
  • Packet Loss (cho UDP): Phần trăm gói tin bị mất trong quá trình truyền, phản ánh độ tin cậy của kết nối.
  • Retransmits (cho TCP): Số lượng gói tin TCP bị gửi lại do mất hoặc lỗi.

5. Lưu kết quả dưới dạng JSON

Bạn có thể lưu kết quả kiểm thử dưới dạng JSON để tiện phân tích hoặc tích hợp với các công cụ giám sát:

iperf3 -c <server_ip> -J > output.json

6. Ví dụ tổng hợp với nhiều tham số

Một ví dụ tổng hợp sử dụng nhiều tham số trên máy khách:

iperf3 -c <server_ip> -u -b 500M -P 5 -w 1M -t 60 -J > advanced_test.json

7. Kiểm tra tốc độ hai chiều (Dual Test Mode)

Để kiểm tra tốc độ hai chiều, iperf3 hỗ trợ tùy chọn --bidir, giúp đo tốc độ truyền tải đồng thời từ máy khách đến máy chủ và ngược lại:

iperf3 -c <server_ip> --bidir

8. Lời khuyên khi đo đạc

  • Tắt các ứng dụng và dịch vụ khác có thể ảnh hưởng đến băng thông.
  • Đảm bảo không có giới hạn băng thông hoặc chính sách QoS áp dụng trên các kết nối mà bạn đang thử nghiệm.
  • Sử dụng iperf3 trong nhiều điều kiện để có cái nhìn toàn diện, ví dụ: giờ cao điểm và ngoài giờ cao điểm.

Với các tùy chọn nâng cao của iperf3, bạn có thể tùy chỉnh để phù hợp với mọi yêu cầu kiểm thử trong môi trường DevOps chuyên nghiệp.