Skip to content

Config Bilang 40 Mbps, Speed Test Bilang 5

Adityo Guni Waluyo

Rumus konversi Mbps yang diingat salah bikin cap 3proxy cuma 5 Mbps, error 8 kali lipat. Manual bilang bits, speed test yang buktikan.

Ringkasan

Bandwidth cap di 3proxy cuma dapet 5 Mbps padahal config nulis 40. Ternyata bandlim pakai satuan bits per detik, bukan bytes, jadi nilai 5.000.000 harusnya 40.000.000. Pelajarannya: baca manual dulu daripada percaya rumus hafalan, sambil dirapiin juga dashboard GoAccess biar tabel URL langsung kelihatan.

# Speed Test vs. Rumus yang Salah Hafal

Speed test lewat proxy, hasilnya mentok di sekitar 5 Mbps. Config bilang cap-nya 40 Mbps. Saya cek bandlimin dan bandlimout di file konfigurasi 3proxy: nilainya 5.000.000. "Bener kok," pikir saya waktu itu. "Lima juta kan sama aja 40 Mbps." Rumus yang saya ingat: Mbps × 125.000 = bytes per detik. 40 × 125.000 = 5.000.000. Done.

Tapi speed test bilang beda.

Awalnya saya curiga network layer, mungkin ada throttling di ISP atau di router. Jalur lain tanpa proxy, langsung ke internet, hasilnya normal sesuai bandwidth. Jadi masalahnya memang di 3proxy. Saya googling "3proxy bandlim unit", dan lihat manpage-nya.

"bandlim sets bandwith limitation filter to <rate> bps (bits per second)" [5]

Bukan bytes per detik. Bits.

Ada kalimat lanjutannya juga: "If you want to specife bytes per second - multiply your value to 8" [5]. Artinya kalau mau 5 juta bytes per detik, isi 40.000.000. Saya kebalik. Saya konversi dari Mbps ke bytes per detik, padahal 3proxy minta bits per detik, yang secara literal sama aja dengan Mbps dikali satu juta.

Jadi 5.000.000 itu bukan 40 Mbps. Itu 5 Mbps. Error 8x.

Komentar di config lama yang nulis "40 Mbps = 5.000.000 B/s (rumus: Mbps × 125.000)" sebenarnya benar secara matematika, karena konversi Mbps ke bytes per detik memang begitu. Tapi 3proxy nggak pakai unit "bytes per second". Dia pakai "bits per second". Konversi yang saya lakukan, mengubah Mbps ke bytes per detik, ternyata nggak relevan untuk tool ini. Saya cuma perlu baca manualnya.

Formula yang diingat salah kalah 30 detik speed test. Saya ganti nilainya jadi 40.000.000. Speed test ulang: 39-40 Mbps. Sesuai. Satu angka nol kurang, bandwidth berkurang delapan kali lipat.

Saya pribadi lebih percaya speed test daripada rumus yang diingat di kepala. Speed test itu empiris, langsung ngukur apa yang terjadi. Rumus yang dihafal bisa bener bisa salah, dan yang salah itu seringnya lebih berbahaya, karena saya yakin banget dia bener. Apalagi kalau udah ada komentar di config yang "menjelaskan" rumusnya. Komennya dibaca, rasanya masuk akal, terus nggak pernah dicocokkan ke manual. Satu kalimat di manpage yang seharusnya saya baca duluan itu cuma butuh 10 detik untuk ditemukan.

Dashboard GoAccess yang Dirapikan

Commit ini juga bersihin tampilan GoAccess. Sebelumnya, default GoAccess nampilin banyak panel: general stats, referrers, browsers, OS, dan seterusnya. Banyak panel yang nggak berguna untuk use case saya, dan yang saya cari (tabel URL) justru tenggelam di tengah tumpukan informasi.

Saya pakai dua flag dari manpage GoAccess [2].

--ignore-panel menghilangkan panel dari parsing dan display sekaligus. Saya non-aktifkan 16 panel yang nggak perlu: referrers, browsers, OS, hosts, dan lain-lain. Yang tersisa: General Statistics, Requested Files, status codes. Langsung ke poinnya.

--html-prefs set preferensi HTML report sebagai JSON one-liner [2]. Yang saya ubah: autoHideTables jadi false dan perPage jadi 10. Hasilnya, tabel URL langsung terlihat waktu buka dashboard tanpa perlu klik expand atau scroll ke bawah. Baris Accepting_connections dari startup log 3proxy juga difilter dari feeder awk. Noise berkurang, signal naik.

Kenapa URL panel penting banget sih? Karena balik ke pertanyaan lama saya: counters 3proxy jawab "berapa", tapi "URL mana yang makan bandwidth" cuma bisa dijawab sama GoAccess. Kalau tabel URL-nya aja ke-hide di balik klik, dashboard realtime-ya dapet tapi informasi yang dicari justru nggak langsung kelihatan. Maka autoHideTables saya matikan, perPage 10, dan panel yang nyampurin dibuang sekalian biar scroll nggak panjang.

Dua perubahan kecil dalam satu commit. Tapi sekarang saya nggak perlu ngulik dashboard setiap kali buka, dan bandwidth cap-nya beneran 40 Mbps. Angka di config sekarang punya arti yang sama dengan angka di speed test, dan itu semua yang saya minta dari sebuah unit konfigurasi.

---

Artikel terkait