Cara mengkonfigurasi QoS / SQM dengan SRA (adaptasi tingkat mulus) di OpenWrt

2

Baru-baru ini ISP saya mengubah saluran DSL saya dari tarif tetap ke SRA . Hal ini memungkinkan modem untuk menyesuaikan kecepatan internet dengan kualitas saluran daripada benar-benar mogok (ISP saya tidak tertarik untuk memperbaiki saluran sehingga ia memperkenalkan mode ini karena sebelum kami memiliki waktu up hanya 90%) . Kecepatan turun ke dan di bawah setengah dari kecepatan tertinggi. 1MBit / s bukannya 2MBit / s adalah rasa sakit ketika memiliki banyak orang pada saat yang sama menggunakan internet tetapi lebih baik daripada tidak ada internet.

Saat mengonfigurasi QoS ( Kualitas Layanan ) atau SQM ( Smart Queue Management, saya perlu mengatur kecepatan pengunduhan menjadi sekitar 90% dari koneksi internet. Jika saya atur di atas kecepatan aktual, itu tidak akan berfungsi. Jika saya atur terlalu rendah , itu akan sangat lambat sementara itu bisa lebih cepat.

Karena ada beberapa orang yang menggunakan koneksi (juga menonton youtube res rendah dan mesin mereka melakukan pembaruan otomatis, terutama Windows 10 PC), menggunakan internet untuk apa pun yang dipengaruhi oleh latensi tinggi (alias. Ping) benar-benar menjengkelkan / tidak mungkin tanpa QoS.

Modem ISP tidak memiliki QoS dengan sendirinya.

Apa yang bisa saya lakukan untuk menjaga latensi / bufferbloat tetap rendah sambil memaksimalkan kecepatan internet?

(Versi OpenWrt adalah Chaos Calmer 15.05)

H. Idden
sumber

Jawaban:

2

Saya harap Anda sudah memperbaikinya sekarang. Tetapi jika Anda belum atau orang lain membutuhkan bantuan dengan ini, solusi yang saya buat adalah sebagai berikut: Gunakan router openwrt Anda dengan SQM diaktifkan (sebaiknya cake dan bukan openwrt tetapi LEDE) untuk perangkat Anda yang sensitif terhadap lag. Kemudian hubungkan TP-LINK (firmware firmware) murahan dari port itu ke port lan router openwrt / LEDE Anda dan aktifkan fitur: batasi bandwidth pada tplink. Setel di setengah kecepatan total Anda dan jalankan beberapa contoh YouTube Netflix torrent dll di jaringan router tplink Anda Kemudian buka program sensitif-lag Anda di jaringan utama Anda (openwrt / LEDE) dan ukur lag. Jika terlalu tinggi, turunkan batasnya (terutama unggah) pada TPLINK Anda jika terlalu rendah dorong hingga mempengaruhi ping Anda dan seterusnya, Anda perlu menemukan keseimbangan yang tepat.

Ketika Anda ingin bandwidth penuh untuk wifi tamu Anda, Anda menonaktifkan batas bandwidth. Ketika Anda tidak tahan dengan lag Anda menyalakannya: D

Ini bukan solusi terbaik, mungkin Anda bisa mencoba Pf-sense / IPFIRE qos / sqm untuk membagi bandwidth dan barang-barang tetapi Anda membutuhkan PC tambahan untuk itu.

Semoga berhasil!!

Agus Alexander
sumber
2

Apa yang akhirnya saya lakukan adalah:

Saya menulis sebuah skrip yang berjalan di router openwrt setiap menit untuk mendapatkan bandwidth saat ini dari modem, mengurangi margin dan menerapkan nilai ini ke SQM-config

Jika ada orang lain yang memiliki masalah ini, inilah skrip yang saya tulis. Saya baru mengenal lua dan pemrograman pada OpenWrt, jadi perkirakan ada kesalahan, tapi mungkin itu akan membantu orang lain.

http=require'socket.http'
body,c,l,h = http.request('http://modem/page_showing_current_speed')

bandwidth = "%[kbps/kbps%]:</td><td colspan='3'>[%d.]+ / [%d.]+</td></tr>"
bw_s = string.sub(body, string.find(body, bandwidth))
bandwidth = "[%d.]+ / [%d.]+"
bw_s = string.sub(bw_s, string.find(bw_s, bandwidth))
upload_r = "[%d.]+ "
upload = string.sub(bw_s, string.find(bw_s, upload_r))
upload_r = "[%d.]+"
upload = string.sub(upload, string.find(upload, upload_r))
upload = upload:gsub("%.", "")
download_r = " [%d.]+"
download = string.sub(bw_s, string.find(bw_s, download_r))
download_r = "[%d.]+"
download = string.sub(download, string.find(download, download_r))
download = download:gsub("%.", "")
print(upload)
print(download)
f = io.open("/etc/config/sqm", "rw")
content = f:read("*all")
f:close(f)
oldcontent = content
content = content:gsub("option download '%d+", "option download '" .. download)
content = content:gsub("option upload '%d+", "option upload '" .. upload)
if content == oldcontent
    then
    else
        print(content)
        f2 = io.open("/etc/config/sqm", "w")
        f2:write(content)
        f2:flush(f2)
        f2:close(f2)

        os.execute("/etc/init.d/sqm restart")
end

lalu lari:

opkg update
opkg install luasocket
crontab -e
* * * * * lua /adjustsqm.lua
/etc/init.d/cron restart

itu mendapatkan kecepatan saat ini dari modem setiap menit dan menuliskannya ke dalam konfigurasi sqm

H. Idden
sumber
Bisakah Anda berbagi skrip Anda?
valentt
@valentt Jauh dari sempurna dan perlu disesuaikan dengan tipe modem tapi saya menambahkannya sebagai titik awal
H. Idden
0

Coba instal Gargoyle Firmware di router Anda, itu harus memiliki QOS adaptif yang dikonfigurasi sehingga Anda hanya perlu mengaktifkannya dan menggunakannya.

Saya tidak dapat menjamin itu berfungsi, jadi silakan lakukan tes Anda sendiri dan laporkan kembali.

valentt
sumber