Episode ini membahas optimalisasi kinerja: mengelola penggunaan memori dan CPU, konfigurasi serversTransport untuk keep-alive dan timeout, TLS performance dengan session resumption dan HTTP/2, strategi optimasi middleware, serta benchmarking dengan wrk, ab, dan k6 untuk menemukan bottleneck.

Traefik yang berjalan bukan berarti Traefik yang optimal. Episode 27 membahas performance tuning: bagaimana Traefik memakai sumber daya, parameter yang paling berpengaruh pada latensi dan throughput, serta cara mengukur apakah perubahan benar-benar membantu — bukan sekadar merasa.
Prinsip utamanya: jangan mengoptimasi tanpa mengukur. Kita mulai dari transport connection, masuk ke TLS, lalu membahas middleware, dan ditutup dengan benchmarking yang jujur. Setelah episode ini, kalian bisa memaksimalkan Traefik untuk workload kalian sendiri.
Traefik ringan, tapi penggunaan memori dipengaruhi beberapa hal:
memRequestBodyBytes jika memori terbatas.bufferingSize besar menambah footprint memori.Alokasikan CPU untuk Traefik secara proporsional: dual-core sudah nyaman untuk ratusan request per detik dengan middleware dasar. Naikkan saat memakai banyak middleware berat atau TLS dengan trafik tinggi.
Koneksi Traefik ke backend diatur oleh ServersTransport. Parameter-parameter berikut paling berdampak:
http:
serversTransports:
prod:
maxIdleConnsPerHost: 100
idleConnTimeout: "90s"
responseHeaderTimeout: "30s"
dialTimeout: "5s"
insecureSkipVerify: falsemaxIdleConnsPerHost: jumlah koneksi idle yang dipertahankan per backend. Nilai tinggi mengurangi biaya pembukaan koneksi baru — efek terbesar untuk trafik burst.idleConnTimeout: kapan koneksi idle dianggap basi dan ditutup.responseHeaderTimeout: waktu tunggu header response; backend yang lambat mengisi kuota ini lalu koneksi ditutup.dialTimeout: batas waktu membuka koneksi baru ke backend.ServersTransport dihubungkan ke service lewat nama:
http:
services:
api-svc:
loadBalancer:
servers:
- url: "http://10.0.0.130:8080"
serversTransport: prodTLS handshake adalah operasi paling mahal di proxy — setiap handshake memakan CPU kriptografi. Trik untuk mempercepat:
acme.json jarang diakses dari disk.Untuk trafik TLS super tinggi, pertimbangkan terminasi TLS di load balancer depan dan Traefik menerima trafik internal — trade-off kontrol vs kinerja yang harus kalian nilai sendiri.
Middleware bisa menjadi beban, jadi pasang dengan sadar:
minResponseBodyBytes) dan file yang sudah terkompresi.Sebelum dan sesudah setiap perubahan, ukur dengan alat yang konsisten:
wrk -t4 -c200 -d30s http://localhost/apiab -n 10000 -c 100 http://localhost/apik6 run --vus 100 --duration 30s script.jsTiga alat dengan karakter berbeda: wrk sangat cepat dan ringan, ab klasik dan ada di mana-mana, k6 berbasis skrip dan cocok untuk skenario kompleks. Perintah wrk dengan 200 koneksi paralel selama 30 detik memberi baseline throughput dan latensi.
Perhatikan tiga angka: requests/sec (throughput), latency percentiles (p95, p99), dan error rate. Bandingkan baseline dengan hasil setelah tuning — jika p95 turun dan throughput naik, perubahan kalian berhasil. Jika tidak ada perubahan, kalian mungkin menyentuh bottleneck di tempat lain: backend, jaringan, atau CPU.
Warning
Benchmark adalah angka mentah, bukan kebenaran absolut. Selalu sertakan beban latar belakang, durasi, dan jumlah koneksi dalam hasil. Angka tanpa konteks hanya akan menyesatkan keputusan.
Inti yang harus dibawa pulang:
maxIdleConnsPerHost adalah parameter transport paling berdampak.Di episode 28 selanjutnya kita akan membahas security hardening — prinsip least privilege, mengamankan dashboard, API, dan endpoint metrics, konfigurasi TLS yang kuat, keamanan container dengan non-root dan read-only filesystem, serta manajemen secret dengan Docker secrets dan Kubernetes secrets.