MOS-‐2015 JAKARTA
QoS on Mul)core Router RouterOS v6.xx
Valens Riyadi (Citraweb)
[email protected]
About Me Valens Riyadi, Citraweb (ID) MikroTik Cer8fied Engineer
(MTCNA, MTCWE, MTCRE, MTCTCE, MTCUME, MTCINE)
MikroTik Cer8fied Trainer since 2004 MikroTik Cer8fied Consultant MikroTik Academy Coordinator Citra.net.id WISP CEO Manager for IDNIC (Indonesia Na8onal Internet Registry) IT Expert on Disaster Relief Proud member of “Routed World” community
QoS on Mul8core – Mikro8k Indonesia
2
Follow Us
@mikrotik_id
• Follow @mikro8k_id • Kultwit se8ap Jumat
mikro)k.id
citraweb nusa infomedia
• Distributor and • Training Partner
Qos pada RouterOS v6
5
MikroTik Training Center • The first MikroTik Training Center in Asia Pasific, has at least 3500 par8cipants (151 classes). • Mikro8k Academy Coordinator.
Qos pada RouterOS v6
6
Recommended Resources •
CCR Status Update (Janis Megis – Video) h_p://8ktube.com/video/GJil3aqniCGJCIqqpGnrGznrClGoJGJo=
•
Dynamic QoS on RouterOS v6 (Valens Riyadi) h_p://mum.mikro8k.com/presenta8ons/IT14/valens.pdf
•
QoS on RouterOSv6 (Valens Riyadi) h_p://mum.mikro8k.com/presenta8ons/HR13/valens.pdf
•
HTB vs PCQ (Valens Riyadi) h_p://mum.mikro8k.com/presenta8ons/HU11/valens.pdf
•
QoS and Traffic Priori8es (Janis Megis) h_p://mum.mikro8k.com/presenta8ons/CZ09/QoS_Megis.pdf
•
HTB QoS (Valens Riyadi) h_p://mum.mikro8k.com/presenta8ons/US09/Valens-‐MUM2009USA.pdf QoS on Mul8core – Mikro8k Indonesia
7
Konsep QoS Fungsi untuk mengukur dan mengontrol komunikasi data (trafik, paket) pada jaringan, untuk menghindari overload, atau ada yang memonopoli jaringan, yang berakibat pada conges8on dan performa jaringan yang buruk. QoS on Mul8core – Mikro8k Indonesia
8
Untuk apa?
QoS concept QoS on Mul8core – Mikro8k Indonesia
9
QoS on RouterOS • MikroTik RouterOS adalah salah satu bandwidth management paling canggih, jika dibandingkan dengan merk lainnya. • Mengapa? – Konfigurasi HTB yang mendalam – Double limita8on + Burst – Ada banyak pilihan dan parameter à packet-‐mark
QoS on Mul8core – Mikro8k Indonesia
10
HTB • Sebagian besar implementasi QoS pada RouterOS berdasarkan Hierarchical Token Bucket (HTB) • HTB memungkinkan kita membuat struktur queue berjenjang dan menentukan relasi antara parent dengan child, ataupun antar sesama child. • RouterOS v6 mengenal 1 virtual HTBs (global), dan satu di akhir se8ap interface QoS on Mul8core – Mikro8k Indonesia
11
HTB Sample Parent/ inner queue
A
B
D
E
C
F
G
H
I
Child = leaf queue QoS on Mul8core – Mikro8k Indonesia
12
Queue Parameter • • • • •
limit-‐at (CIR) max-‐limit (MIR) burst (threshold, limit, 8me) queue type (FIFO, RED, SFQ, PCQ) parent
QoS on Mul8core – Mikro8k Indonesia
13
child A: limit-‐at=4mbps 4mbps max-‐limit=8mbps child B: limit-‐at=6mbps 6mbps max-‐limit=8mbps parent max-‐limit 10mbps QoS on Mul8core – Mikro8k Indonesia
14
child A
child B: limit-‐at=6mbps max-‐limit=8mbps
2mbps
8mbps
parent max-‐limit 10mbps QoS on Mul8core – Mikro8k Indonesia
15
child A : 0mbps child B: limit-‐at=6mbps max-‐limit=8mbps
8mbps
parent max-‐limit 10mbps QoS on Mul8core – Mikro8k Indonesia
16
without parent, with 10mbps link child A
child B
child A child A child A child B child B child B QoS on Mul8core – Mikro8k Indonesia
17
Tanpa parent, paremeter limit-‐at dan priority akan diabaikan. QoS on Mul8core – Mikro8k Indonesia
18
Burts
QoS on Mul8core – Mikro8k Indonesia
19
Burst • Burst adalah salah satu cara terbaik untuk meningkatkan kenyamanan browsing. • Bursts memungkinkan pengguna mendapatkan kecepatan 8nggi dalam waktu tertentu. • Jika rata-‐rata kecepatan dalam burst-‐)me terakhir lebih rendah dari burst-‐threshold, maka kecepatan dapat naik hingga burst-‐limit QoS on Mul8core – Mikro8k Indonesia
20
MULTICORE?
QoS on Mul8core – Mikro8k Indonesia
21
Queue & Mul8core Processing • Sebagian besar waktu yang dihabiskan sebuah paket adalah menunggu dalam queue. • Supaya 8dak memboroskan siklus CPU core saat menunggu, core tersebut akan meninggalkan paket di queue. • Paket akan diambil secara random dari antrian untuk diproses pada core tertentu. • Secara sederhana: queue akan membagikan paket untuk CPU Core tertentu. QoS on Mul8core – Mikro8k Indonesia
22
Packet Flow Change • Pada RouterOS v5.x, paket melalui proses queue beberapa kali, sehingga proses pemilihan core juga terjadi beberapa kali. • Untuk RouterOS v6, proses QoS dirombak sehingga proses queue hanya terjadi di suatu kelompok proses, pada akhir flow.
QoS on Mul8core – Mikro8k Indonesia
23
HTB in RoS v5
QoS on Mul8core – Mikro8k Indonesia
24
HTB in RoS v6
QoS on Mul8core – Mikro8k Indonesia
25
Queue Tree on Mul8core • Jika di8njau dari perspek8f Kernel, keseluruhan HTB tree adalah satu queue, sehingga diproses hanya oleh satu core • Op8masi seper8 yang dilakukan pada simple queue akan juga dilakukan pada queue tree. • Saran: – Gunakan HTB dengan interface, dan hindari menggunakan HTB global. – Gunakan simple queue. QoS on Mul8core – Mikro8k Indonesia
26
Queue Change in 6.19 Di RouterOS v6.19, ada pengubahan sorware untuk meningkatkan kinerja queue: • Sebelumnya: core akan meninggalkan paket di queue, dan core lainnya akan dipilih secara random untuk mengatur paket tersebut • Sekarang: core tersebut 8dak hanya meninggalkan paket, tapi juga harus mengambil paket lainnya yang sudah ada di queue. • Jika limit di queue belum tercapai, paket yang sama akan di8nggalkan dan langsung diambil lagi oleh core yang sama, membuat proses ini jauh lebih cepat. QoS on Mul8core – Mikro8k Indonesia
27
Lab Test
2 CCR 1036 melakukan traffic generator, melalui 1 CCR 1036, rou8ng mode. QoS on Mul8core – Mikro8k Indonesia
28
Traffic Generator Se8ap mesin mengirimkan 10 streams (masing-‐masing 25mbps), dari 10 ip address yang berbeda, menuju 10 ip address yang berbeda. QoS on Mul8core – Mikro8k Indonesia
29
Without any configura8on
QoS on Mul8core – Mikro8k Indonesia
30
Mangle • Kita perlu membuat firewall mangle untuk packet marking jika akan menggunakan queue tree /ip firewall mangle
add action=mark-packet chain=prerouting \
\ new-packet-mark=packet-src-0.255 passthrough=no src-address=172.16.0.255
action=mark-packet chain=prerouting \ add new-packet-mark=packet-dst-0.255 \ passthrough=no dst-address=172.16.0.255 • Korelasi antara packet-‐mark dan cpu-‐load? QoS on Mul8core – Mikro8k Indonesia
31
Conn-‐Mark? • Tidakkah seharusnya kita menggunakan connec8on-‐mark sebelum packet-‐mark di firewall mangle? • Ya. Tapi di lab-‐test ini kita ingin melihat seberapa banyak CCR dapat bertahan sehubungan dengan jumlah packet-‐mark Later, I test with conn-mark, almost same result. QoS on Mul8core – Mikro8k Indonesia
32
Firewall -‐ Mangle
QoS on Mul8core – Mikro8k Indonesia
33
Graphs CPU Load
CPU Load 120 100 80 60 40
Mangle QoS on Mul8core – Mikro8k Indonesia
640
608
576
544
512
480
448
416
384
352
320
288
256
224
192
160
128
96
64
32
0
0
20
34
608 Mangle à 48% CPU Load • d
Dynamic QoS – Mikro8k Indonesia
35
640 mangles à 100% CPU load
Dynamic QoS – Mikro8k Indonesia
36
What next? • Test sebelumnya hanya menggunakan packet –mark. Kita lanjutkan dengan queue tree (512 rules). • Kita gunakan 512 mangles, 24% CPU load. /queue tree add max-limit=20M name=queue-src-1.1 packet-mark=packet-src-1.1 parent=global queue=default add max-limit=20M name=queue-dst-1.1 packet-mark=packet-dst-1.1 parent=global queue=default QoS on Mul8core – Mikro8k Indonesia
37
ss
QoS on Mul8core – Mikro8k Indonesia
38
CPU Load • Dengan 512 mangles tanpa queue tree, 24% CPU load. • Dengan 512 mangles + 512 queue tree, 43% CPU Load (hampir 2 kali lipat). • Tapi, on Tools – Profile, load untuk queue masih rendah.
QoS on Mul8core – Mikro8k Indonesia
39
Simple Queue l
Algoritma pencocokan (matching) telah diubah: - -
-
berdasarkan hash proses pencocokan lebih cepat
QoS akan op8mal pada perangkat dengan mul8 core jika simple queue teratas (parent) berjumlah minimal 32, sehingga proses tersebut dapat disebar lebih merata. QoS on Mul8core – Mikro8k Indonesia
40
Let’s try Simple Queue • Kita membuat 512 simple queue : /queue simple add max-limit=20M/20M name=simple-queue-1.1 target=172.16.1.1/32
QoS on Mul8core – Mikro8k Indonesia
41
Dengan Simple Queue
Hanya 1% of CPU Load dengan Simple Queue QoS on Mul8core – Mikro8k Indonesia
42
Why Simple Queue? • Jika kita gunakan simple queue, 8dak harus menggunakan mangle (mangle membutuhkan CPU resources yang besar). • Simple Queue di v6 memiliki proses hashing yang efisien. • Untuk layanan non dedicated, bisa menggunakan fitur burst. • Jika kita gunakan Queue tree, queue dalam satu interface parent akan diproses hanya oleh satu CPU core. QoS on Mul8core – Mikro8k Indonesia
43
Kesimpulan • Untuk jaringan dengan bandwidth yang 8dak besar, overloaded network: – kombinasi packet-‐mark, dengan – queue tree, HTB, dan burst
• Untuk high throughput backbone: – gunakan mul8core router: • CCR 36 – 72 core • Intel base quad core Xeon (8 thread)
– simple queue (no parent) QoS on Mul8core – Mikro8k Indonesia
44
Thank you Comments and sugges8ons: Valens Riyadi (
[email protected]) @valensriyadi
This license lets others remix, tweak, and build upon your work even for commercial purposes, as long as they credit you and license their new crea8ons under the iden8cal terms. This license is oren compared to “copyler” free and open source sorware licenses. All new works based on yours will carry the same license, so any deriva8ves will also allow commercial use. QoS on Mul8core – Mikro8k Indonesia
45