Smart Queue Management (SQM/Quản lý hàng đợi thông minh): Diệt tận gốc lag đường mạng khi tải nặng
Mạng lag khi tải nặng dù đã dùng QoS? List QoS quá dài và quá phiền phức để quản lý? Để lọt mất data không đi qua QoS mà không biết cách nào để xử lý?
View attachment 1612721
Hình ảnh lấy từ con Draytek đã QoS đủ kiểu con đà điểu, ping cao thế này thì sao mà chơi game, VoIP?
SQM là một thuật toán thông minh giúp cân bằng đường mạng hoàn toàn tự động, tránh bị nghẽn khi bất kì 1 ai đó tải nặng (hay còn gọi là bufferbloat).
SQM được phát triển từ 1 dự án có tên là CeroWrt từ 2011 và code của chức năng này đã được áp dụng lên rất nhiều firmware khác nhau, bắt đầu từ LEDE (trước khi merge vào OpenWRT) cho tới firmware dùng trong doanh nghiệp như UniFi, Mikrotik, Grandstream, vv... và đa phần các router xài chip Quan Cơm cũng có cái này (vì SDK của Quan Cơm chính là OpenWRT, nhưng OEM họ có tích hợp SQM ko thì mình ko biết nhé).
Không giống như QoS, SQM không phụ thuộc vào bất cứ 1 list danh sách các trang web hay app nào mà hoàn toàn chủ động và tự động phân loại data. Chỉ cần bật thuật toán SQM và điều chỉnh 1 vài thông số cơ bản thì SQM sẽ hoàn toàn tự động phân loại bất kì data nào và bạn chỉ việc để đấy máy tính tự xử hết
- SQM chỉ nên để ở router chính (router nối modem hoặc nối đường có internet).
- Do việc xử lý data hoàn toàn tự động nên cần CPU khỏe. Nếu CPU quá yếu sẽ làm giảm tốc độ internet.
- Hiện tại SQM không xử lý được bufferbloat từ đường 4G và 5G, WiFi mình chưa test nên chưa biết
Hình ảnh sau khi SQM
View attachment 1612720
Hình ảnh bufferbloat sau khi qua SQM từ OpenWRT
Cách chạy SQM trên OpenWRT
- Download software có tên "luci-app-sqm" (thường đc tích hợp sẵn trên rom của các pháp sư Trung hoa)
- Vào Network > SQM QoS > tạo Queue
- Bật SQM instance
- Ỡ chỗ Interface name, chọn Ethernet Adapter cắm vào modem ý, ko đc chọn Alias Interface hoặc Tunnel Interface (trên lý thuyết chọn đc nhưng ngốn CPU ráng chịu)
- Chỗ Download speed nên để tầm 85-95% tốc độ mạng nhà bạn (hoặc -50Mb nếu gói cước >300Mb), Upload speed đa phần có thể mặc kệ vì đa phần ít người upload cùng đường GPON lắm nên có full tải đường này cũng khó dính bufferbloat.
- Sang tab Queue Discipline, Queuing discipline nên chọn Cake (fq_codel khá cũ rồi ko nên xài), Queue setup script có thể chọn layer_cake (có priority cho app) hoặc piece_of_cake cho router yếu hơn và có thể tận dụng PC hoặc laptop có tool tự phân loại data, điển hình như chip mạng Intel Killer hoặc các đt có chức năng phân loại data khi chơi game.
- (Tùy chọn SQM) Trong phần Advanced Configuration của Queue Discipline có option Squash DSCP on inbound packets, chọn DO NOT SQUASH nếu nếu bạn ko tin tưởng QoS flags từ đường GPON vào router.
- (Tùy chọn giảm tải CPU) Vào Network > Firewall, nhìn vào phần Routing/NAT Offloading có 2 tick Software và Hardware, tick cả 2 cái rồi apply. Nếu Hardware Offload gây lỗi SQM thì bạn có thể tắt, còn Software Offload mình đã test chạy được với SQM và hoàn toàn ko có vấn đề nhé (Đã test trên OpenWRT 22.03, kernel 5.15)
- Sau khi chỉnh xong thì vào https://www.waveform.com/tools/bufferbloat test, nếu <+5ms ở 2 phần active thì SQM đã chạy tốt, muốn giảm hơn nữa thì có thể giảm băng thông 1 chút (ở phần Download/Upload speed bên trên) cho tới khi vào về +0ms là ngon