Thứ Bảy, 12 tháng 9, 2026

Làm thế nào để đo băng thông mạng?

🚀 ĐO BĂNG THÔNG MẠNG GIỮA CÁC NODE ORACLE RAC BẰNG IPERF3

Trong Oracle RAC, Interconnect Network là một trong những thành phần hạ tầng quan trọng nhất.

Bạn có thể có server mạnh, Storage All-Flash, switch 10/25/40Gbps… nhưng nếu đường mạng Private Interconnect giữa các RAC Node có vấn đề thì Cache Fusion và hiệu năng toàn cụm có thể bị ảnh hưởng trực tiếp.


Vấn đề là:

Card mạng 10G + Switch 10G chưa chắc có nghĩa băng thông thực tế đạt 10Gbps.

Dưới đây là một cách rất đơn giản để kiểm chứng bằng iperf3.


📑 MỤC LỤC

1. Vấn đề cần kiểm tra
2. Tại sao Network quan trọng với Oracle RAC?
3. Kiểm tra cấu hình NIC trước khi test
4. Đo băng thông bằng iperf3
5. Đọc và đánh giá kết quả
6. Test nâng cao cho RAC
7. Xử lý khi mạng 10G nhưng chỉ chạy ~1G
8. Checklist kiểm tra RAC Interconnect
9. Kết luận


1. 🔥 VẤN ĐỀ

Giả sử chúng ta triển khai Oracle RAC 2 Node:

                    PRIVATE INTERCONNECT


        RAC NODE 1                         RAC NODE 2

     192.168.0.2                         192.168.0.1

          │                                  │

          │          10 Gbps                 │

          ├────────── SWITCH ────────────────┤

          │                                  │

       NIC 10G                            NIC 10G

Theo thiết kế:

NIC Node 1      = 10Gbps

NIC Node 2      = 10Gbps

Switch          = 10Gbps

--------------------------------

Kỳ vọng         ≈ 10Gbps

Nhưng thiết kế 10G không đồng nghĩa thực tế chắc chắn đạt 10G.

Trong quá trình triển khai có thể gặp:

  • Cáp/quang/transceiver không đúng chuẩn.
  • NIC negotiation sai.
  • Switch port cấu hình sai.
  • Bonding/teaming không đúng.
  • MTU giữa các thiết bị không đồng nhất.
  • NIC hoặc switch port phát sinh error/drop.
  • Driver/Firmware NIC có vấn đề.
  • Traffic đi nhầm interface.
  • Một thành phần trung gian chỉ hỗ trợ 1G.
  • Routing/network configuration không đúng.

Kết quả có thể là:

Thiết kế:     10 Gbps

                │

                ▼

         Có vấn đề hạ tầng

                │

                ▼

Thực tế:      ~1 Gbps

Nếu chỉ kiểm tra cấu hình mà không benchmark thực tế, DBA có thể không phát hiện ra vấn đề.


2. 🧠 TẠI SAO NETWORK QUAN TRỌNG VỚI ORACLE RAC?

Oracle RAC sử dụng Private Interconnect để các instance trao đổi dữ liệu và thông tin điều phối.

Một trong những cơ chế quan trọng nhất là:

Application

     │

     ▼

Oracle Instance 1

     │

     │ cần block đang nằm ở Instance 2

     ▼

Private Interconnect

     │

     ▼

Oracle Instance 2

     │

     ▼

Buffer Cache

Thay vì lúc nào cũng đọc block lại từ storage, RAC có thể chuyển block giữa các instance qua Cache Fusion.

Do đó:

Interconnect tốt

      ↓

Latency thấp

      ↓

Block transfer nhanh

      ↓

Cache Fusion tốt

      ↓

RAC hoạt động hiệu quả

Ngược lại, nếu Interconnect có vấn đề, có thể thấy các biểu hiện như:

gc cr request

gc current request

gc cr block busy

gc current block busy

gc buffer busy acquire

Tuy nhiên cần lưu ý: các gc wait cao không tự động có nghĩa network bị lỗi. Chúng còn phụ thuộc workload, contention, hot block, thiết kế ứng dụng… Vì vậy phải kết hợp AWR/ASH và các chỉ số OS/network để kết luận.


3. 🔎 TRƯỚC TIÊN KIỂM TRA NIC

Trước khi chạy iperf3, tôi thường kiểm tra link của cả hai node.

Ví dụ:

ethtool eth1

Tìm:

Speed: 10000Mb/s

Duplex: Full

Link detected: yes

Nếu là NIC 10G nhưng xuất hiện:

Speed: 1000Mb/s

thì đã có dấu hiệu cần kiểm tra ngay.

Kiểm tra MTU

ip link show eth1

Ví dụ:

mtu 9000

Nếu sử dụng Jumbo Frame thì phải bảo đảm end-to-end đều hỗ trợ cùng MTU.

Có thể kiểm tra bằng:

ping -M do -s 8972 192.168.0.1

Với IPv4 Ethernet thông thường, payload 8972 + 20-byte IP header + 8-byte ICMP header tương ứng MTU 9000.


4. 🚀 ĐO BĂNG THÔNG THỰC TẾ BẰNG IPERF3

Đây mới là bước quan trọng.

Bước 1 – Cài iperf3

Trên Oracle Linux/RHEL, tùy repository đang được enable:

dnf install iperf3

hoặc:

yum install iperf3

Kiểm tra:

iperf3 --version


Bước 2 – Node đích chạy Server

Ví dụ Node 2 có Private IP:

192.168.0.1

Chạy:

iperf3 -s

Mặc định iperf3 lắng nghe TCP port:

5201

Mô hình lúc này:

NODE 1                               NODE 2

192.168.0.2                          192.168.0.1


iperf3 Client   ────────────────►   iperf3 Server

                                      TCP/5201


5. 🧪 NODE 1 CHẠY TEST

Trên Node 1:

iperf3 -c 192.168.0.1

Trong hình kết quả thu được khoảng:

0.00-10.00 sec    11.5 GBytes    9.90 Gbits/sec    sender

0.00-10.04 sec    11.5 GBytes    9.86 Gbits/sec    receiver

🎯 Kết luận

Đây là một kết quả rất tốt đối với đường 10GbE.

┌───────────────────────────────┐

│      NETWORK TEST RESULT      │

├───────────────────────────────┤

│ Link thiết kế : 10 Gbps       │

│ Sender        : 9.90 Gbps     │

│ Receiver      : 9.86 Gbps     │

│                               │

│        ✅ ĐẠT YÊU CẦU         │

└───────────────────────────────┘

TCP throughput thực tế gần sát line rate 10Gbps cho thấy đường truyền đang hoạt động tốt về throughput trong bài test này.


6. ⚠️ ĐỪNG CHỈ TEST MỘT CHIỀU

Đối với RAC, tôi khuyến nghị test hai chiều.

Node 1 → Node 2

iperf3 -c 192.168.0.1

Node 2 → Node 1

Đổi Node 1 thành server:

iperf3 -s

Node 2:

iperf3 -c 192.168.0.2

Hoặc với phiên bản iperf3 hỗ trợ reverse test:

iperf3 -c 192.168.0.1 -R

Kỳ vọng:

Node1 ───── ~10G ─────► Node2

Node1 ◄──── ~10G ────── Node2


             ✅

       Hai chiều đều tốt


7. 🔬 TEST KỸ HƠN VỚI PARALLEL STREAM

Một TCP stream đôi khi chưa khai thác hết đường truyền, nhất là mạng nhanh hơn hoặc có độ trễ đáng kể.

Có thể chạy:

iperf3 -c 192.168.0.1 -P 4

hoặc:

iperf3 -c 192.168.0.1 -P 8

Trong đó:

-P 4

nghĩa là tạo 4 TCP stream song song.

Đây cũng là cách hữu ích để phân biệt trường hợp đường truyền thực sự bị giới hạn với trường hợp một TCP stream không tận dụng hết bandwidth.


8. 🚨 NẾU 10G MÀ CHỈ ĐO ĐƯỢC ~1G THÌ LÀM GÌ?

Ví dụ:

iperf3 result

Bitrate: 940 Mbits/sec

Trong khi thiết kế:

10 Gbps

thì cần điều tra.

Đầu tiên:

ethtool eth1

Kiểm tra:

Speed

Duplex

Link detected

Tiếp theo:

ip -s link show eth1

Tìm các chỉ số:

RX errors

TX errors

dropped

overruns

Kiểm tra chi tiết NIC:

ethtool -S eth1

Sau đó kiểm tra phía switch:

Switch Port

   │

   ├── Speed

   ├── Duplex

   ├── CRC Error

   ├── Input Error

   ├── Output Error

   ├── Drop

   └── MTU

Và kiểm tra toàn bộ đường đi:

Oracle RAC Node 1

      │

     NIC

      │

   Cable/SFP

      │

   Switch Port

      │

     Switch

      │

   Switch Port

      │

   Cable/SFP

      │

     NIC

      │

Oracle RAC Node 2

Chỉ cần một mắt xích có vấn đề cũng có thể ảnh hưởng đến toàn bộ đường truyền.


9. 📋 CHECKLIST RAC INTERCONNECT

Khi nghiệm thu hoặc Health Check Oracle RAC, tôi khuyến nghị ít nhất kiểm tra:

Hạng mục

Lệnh/Phương pháp

Kỳ vọng

Link speed

ethtool <NIC>

10G/25G… đúng thiết kế

Duplex

ethtool <NIC>

Full

MTU

ip link

Đồng nhất

Jumbo Frame

ping -M do

Thành công nếu thiết kế MTU 9000

Throughput

iperf3

Gần bandwidth thiết kế

2 chiều

iperf3, -R

Đều tốt

Parallel

iperf3 -P 4

Không có bottleneck bất thường

NIC Error

ip -s link

Không tăng bất thường

NIC Statistics

ethtool -S

Không CRC/drop bất thường

Switch

kiểm tra port

Không error/drop

RAC interface

oifcfg getif

Private đúng interface/subnet

Đặc biệt nên kiểm tra Oracle đang nhận diện đúng Private Interconnect:

oifcfg getif

Ví dụ:

eth0  10.0.0.0      global  public

eth1  192.168.0.0   global  cluster_interconnect


🎯 KẾT LUẬN

Đừng nghiệm thu Oracle RAC chỉ bằng câu:

“Switch 10G, card 10G nên chắc chắn mạng chạy 10G.”

Hãy đo thực tế.

Chỉ mất vài phút:

NODE 2

iperf3 -s


        ▲

        │  Private Interconnect

        │

NODE 1

iperf3 -c 192.168.0.1

Nếu nhận được:

9.90 Gbits/sec sender

9.86 Gbits/sec receiver

thì có thể kết luận bài test TCP throughput đang khai thác gần đầy đường 10GbE. ✅

Nhưng với Oracle RAC, bandwidth chỉ là một nửa câu chuyện. Yếu tố cực kỳ quan trọng còn lại là latency, packet loss, MTU, NIC/switch errors và độ ổn định của Interconnect, bởi Cache Fusion thường rất nhạy với độ trễ.

💡 Nguyên tắc của DBA:
Đừng tin cấu hình trên giấy — hãy đo trên hệ thống thật.

Trần Văn Bình – VietDBA
#Oracle #OracleRAC #OracleDBA #Linux #Iperf3 #Interconnect #CacheFusion #Performance #VietDBA


=============================
TƯ VẤN: Click Here hoặc Hotline/Zalo 090.29.12.888
=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
cơ sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c/21c/23c/23ai, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master