Meningkatkan kecepatan download dengan multi-connection: membagi file menjadi banyak segmen lewat -x dan -s, mengatur ukuran minimal segmen dengan -k, serta men-download dari banyak mirror sekaligus lewat multi-source dan --http-accept-gzip.

Hingga episode 3, semua download kalian berjalan dengan pengaturan default aria2. Ternyata default itu sengaja "direm": -x (koneksi per server) bernilai 1 dan -s (jumlah segmen) hanya 5. Episode ini adalah tentang melepas rem — memanfaatkan kekuatan sesungguhnya aria2: multi-connection dan multi-source.
Bayangkan dua rute pengiriman: satu truk membawa semua barang melewati satu jalur tol, dan satu konvoi truk yang tiap kendaraannya memuat sebagian barang melewati beberapa lajur sekaligus. Untuk file besar, konvoi jelas lebih cepat. Episode ini mengajarkan kalian membangun konvoi itu — dan memilih kapan layak melakukannya.
Koneksi TCP tunggal bekerja seperti jalur tol satu lajur. Berapa pun lebar jalan (bandwidth) yang tersedia, satu kendaraan tidak pernah memanfaatkannya penuh — terutama di koneksi dengan latensi tinggi, seperti jaringan lintas benua atau VPN. Setiap "request dan menunggu jawaban" memakan waktu, dan satu koneksi tidak bisa mengirim data berikutnya sebelum mendapat konfirmasi yang sebelumnya. Di sinilah koneksi paralel menang: sambil menunggu satu segmen, koneksi lain terus mengirim — jalan tol jadi penuh terpakai.
-x, -s, dan -kTiga opsi ini adalah tombol kendali utama multi-connection:
| Opsi | Nama Panjang | Default | Fungsi |
|---|---|---|---|
-x | --max-connection-per-server | 1 | Jumlah maksimal koneksi per server |
-s | --split | 5 | Jumlah maksimal segmen |
-k | --min-split-size | 20M | Ukuran minimal per segmen agar file mau dipecah |
Cara kerja ketiganya terkait erat:
-x membuka pintu koneksi paralel ke server — tanpa ini, segmen-segmen hanya di-download berurutan.-s menentukan berapa banyak segmen file. Jumlah segmen aktual tidak akan melebihi -s.-k adalah ambang minimum: aria2 hanya memecah file jika hasil bagi ukuran file dengan jumlah segmen masih lebih besar dari -k. File kecil jadi tidak dipecah — overhead koneksi malah lebih boros.Kombinasi yang paling umum dipakai:
aria2c -x 16 -s 16 https://example.com/ubuntu.isoTip
Perhatikan sinerginya: -x 16 membuka 16 koneksi, -s 16 membagi file jadi 16 segmen — sehingga setiap koneksi mengangkat satu segmen secara paralel. Jika hanya -x 16 tanpa menaikkan -s, jumlah segmen tetap 5, dan koneksi ekstra tidak terpakai optimal.
Bentuk panjangnya sama saja — aria2c --max-connection-per-server=16 --split=16 URL — jadi pilih yang paling mudah dibaca. Atau letakkan di config file agar berlaku untuk semua sesi:
max-connection-per-server=16
split=16
min-split-size=20MMulti-connection meningkatkan kecepatan dari satu server. Multi-source meningkatkan kecepatan — dan ketahanan — dengan mengambil file yang sama dari banyak server sekaligus. Jika satu mirror lambat atau mati, segmen yang ditugaskan padanya dipindahkan ke mirror lain. Seperti konvoi yang bisa mengambil barang dari beberapa gudang sekaligus.
Cara memberi tahu aria2 beberapa mirror adalah lewat input file dengan -i. Tulis semua URL mirror dalam satu baris yang dipisahkan karakter TAB:
https://mirror-1.example.com/ubuntu.iso https://mirror-2.example.com/ubuntu.iso https://mirror-3.example.com/ubuntu.isoLalu jalankan:
aria2c -i mirrors.txt -x 4 -s 16Karena ketiga URL menunjuk file yang sama, aria2 membagi segmen-segmen di antara ketiga server — total hingga 12 koneksi paralel. Jika salah satu mirror gagal, download tidak batal: segmennya dilempar ke mirror lain.
Warning
Aturan penting multi-source: semua URL dalam satu baris harus menunjuk file yang sama. Baris yang berisi file berbeda akan membuat download gagal. Untuk men-download file yang berbeda, gunakan baris terpisah. Format TAB ini juga menjadi dasar dari Metalink yang otomatis kita bahas di episode 12.
Satu opsi tambahan yang sering disandingkan: --http-accept-gzip=true — membuat aria2 menerima respons terkompresi gzip dari server yang mendukungnya, menghemat bandwidth pada file berbasis teks. Tidak berlaku untuk semua file, tapi tidak merugikan untuk diaktifkan.
Multi-connection dan multi-source paling berdampak di skenario ini:
| Skenario | Manfaat |
|---|---|
| Download ISO besar (distro Linux) | Menggunakan banyak mirror sekaligus, jauh lebih cepat dari satu sumber |
| Build artifacts dari CI/CD | Artefak besar diambil dengan cepat tanpa memblokir pipeline |
| Dataset di koneksi latensi tinggi | Segmen paralel memaksimalkan penggunaan jalur yang tersedia |
| Download berulang dari server yang menerapkan rate-limit per koneksi | Beberapa koneksi bersama-sama memakai kuota yang tersedia |
Tapi tidak semua file butuh dipecah. Aturan praktisnya: file di bawah puluhan MB tidak perlu -x dan -s besar — overhead koneksi justru memboroskan waktu. Hemat daya komputasi dan bandwidth untuk file yang memang besar.
Menambah -x tanpa menaikkan -s. Koneksi ekstra tidak terpakai optimal jika segmennya masih sedikit. Seimbangkan keduanya.
-k lebih besar dari ukuran file. File tidak akan dipecah sama sekali. Setel -k di bawah ukuran file yang ingin dipecah.
Server tidak mendukung Range request. Tanpa dukungan Range (206 Partial Content), file tidak bisa dipecah — batasan server, bukan bug aria2.
Multi-source dengan file berbeda dalam satu baris. Semua URL dalam satu baris harus menunjuk file yang sama, atau download gagal.
Pada episode 4 ini kalian telah melepas rem aria2: memahami mengapa satu koneksi tidak cukup, menguasai -x (koneksi per server), -s (jumlah segmen), dan -k (minimal ukuran segmen), serta men-download dari banyak mirror sekaligus lewat input file multi-source dan --http-accept-gzip.
Inti yang harus dibawa pulang:
-x = 1 adalah "rem" yang membuat download tetap satu koneksi; -x 16 -s 16 melepasnya.-k (default 20M) menentukan ambang pemecahan file — file kecil tidak perlu dipecah.Di episode 5 selanjutnya kita akan membahas resume, continue & kontrol download — melanjutkan download yang terputus dengan -c dan peran file kontrol .aria2, membatasi kecepatan dengan --max-download-limit, membatasi download bersamaan dengan --max-concurrent-downloads, serta pengantar pause-resume via RPC. Sampai jumpa di episode 5!