aria2 速度 & BitTorrent 最適化
完全なパフォーマンスガイド: 速度がどこから来るのか、効く HTTP と BitTorrent の設定、ディスクと OS の調整、そして遅いダウンロードの計測とデバッグ方法。Raspberry Pi から 10 Gbps シードボックスまで対応します。
最終確認 2026-09 · aria2 v1.37.0
はじめる前に
- aria2 がインストールされ
PATHが通っている。 - ストレージ種別(SSD か HDD)と RAM を把握しておく – これが適切な値を決めます。
- 任意: BitTorrent を使うなら、TCP+UDP ポートを 1 つ転送できるルーター。
値は ~/.aria2/aria2.conf、%USERPROFILE%\.aria2\aria2.conf で変更するか、CLI フラグとして渡します。オプションリファレンス参照。
速度はどこから来るか
「aria2 が遅い」はほぼ必ず 4 つのボトルネックのどれかです。順に解消してください:
- 接続数。 aria2 の HTTP 既定は
max-connection-per-server=1だけです。これを上げるのが絞られた回線での最大の改善です。 - ピア/トラッカーの健全性(BitTorrent)。 死んだトラッカーやポート未転送 = ピアなし = 0 KB/s。
- ディスク I/O。 飽和した HDD は高速ダウンロードを停止させます。事前割り当てとディスクキャッシュで解決します。
- OS の上限。 数千接続を扱う段階ではファイルディスクリプタと TCP の調整が効きます。
上限は自分だけのものではありません。サーバー側の絞り込み、ピアリング、回線速度も結果を制限します。あなたは自分側のボトルネックだけを取り除けます。
HTTP / FTP の調整
| オプション | 既定 | 推奨 | 効果 |
|---|---|---|---|
max-connection-per-server | 1 | 8–16 | ホストごとの並列ソケット – 最大のレバー |
split | 5 | 8–16 | ファイルを分割するチャンク数 |
min-split-size | 20M | 1M–10M | 小さいほど小ファイルで分割が増える(オーバーヘッド増) |
max-concurrent-downloads | 5 | 3–8 | 並列ファイル数。高すぎると各々が細る |
max-tries / retry-wait | 5 / 0 | 5 / 3–10 | 不安定なホストでの堅牢性 |
timeout / connect-timeout | 60 / 60 | 30 / 30 | ハングせず早期に失敗し再試行 |
lowest-speed-limit | 0 | 10K–50K | 停止した接続を切り、再試行で良好な接続を選ぶ |
max-overall-download-limit | 0 | 0(または上限) | 全体速度上限。帯域を共有する場合に設定 |
max-concurrent-downloads=5 max-connection-per-server=16 min-split-size=1M split=16 max-tries=5 retry-wait=5 timeout=30 connect-timeout=30 lowest-speed-limit=10K file-allocation=falloc
サーバーが 429/403 を返したり接続を切る場合は -x/-s を 4–8 に下げます – 「礼儀正しい」方が「積極的」より速いこともあります。
BitTorrent の調整
以下のコマンドは正確で安全です。0 KB/s の最も一般的な実際の原因は、単に到達可能なピアがいないことです: ポート未転送、または死んだトラッカー。
# 発見 enable-dht=true bt-enable-lpd=true enable-peer-exchange=true listen-port=6888 dht-listen-port=6888 # スウォームのスケーリング bt-max-peers=128 bt-request-peer-speed-limit=50K # 遅く停止したピアを切り捨て bt-tracker-connect-timeout=5 bt-tracker-timeout=5 # シード seed-ratio=1.0 # 0 = 永久にシード seed-time=0 bt-save-metadata=true follow-torrent=true
ピアがあなたに接続できるよう、ルーターで TCP と UDP の1 ポート(上記の 6888)を転送してください – そうでなければ外向きのみで、速度が制限されます。bt-tracker に新しいトラッカーリストを保ちます。取得はトラッカーリストから。
暗号化(bt-require-crypto=true)は ISP のシェーピングに有効なことがありますが、一部のピアを排除します – 両方を試してください。プライベートトラッカーでは規則が求める場合は PEX/DHT を無効にします。
ディスク & ファイルシステムの調整
aria2 は書き込み前にファイルを事前割り当てします。既定は prealloc で、ファイル全体にゼロを書き、大容量ダウンロードでシステム全体を止めることがあります。ストレージに応じて選びます:
| モード | 仕組み | 最適な用途 |
|---|---|---|
falloc | posix_fallocate で領域を確保(最新 FS ではほぼ即時) | ext4・XFS・btrfs・APFS の Linux/macOS – 推奨 |
trunc | ファイルヘッダーを作成しサイズまで切り詰め(sparse) | falloc 非対応 FS。高速だが断片化しうる |
prealloc | ファイル全体にゼロを書き込む(既定) | 移植性のある代替。巨大ファイルで遅い |
none | 事前割り当てなし。ダウンロードに応じて成長 | フラッシュ/SD、または起動遅延ゼロを望む場合 |
file-allocation=falloc # ext4/XFS/btrfs/APFS disk-cache=64M # 書き込みを RAM にまとめる(既定 16M) no-file-allocation-limit=64M # このサイズ超のファイルのみ事前割り当て(任意)
- RAM 別のディスクキャッシュ: 16–32M(RAM 1–2 GB)、64M(RAM 4–8 GB – 最適点)、128M(16 GB+)。
- HDD + 多数接続は典型的な停止要因です:
disk-cacheを上げ、fallocを使い、必要なら小さな SSD キャッシュを検討します。 - ext4/XFS は falloc と相性良好。ネットワーク共有(SMB/NFS)はそうでない場合があります – 大きなファイルでテストしてください。
OS & ネットワークの調整
- ファイルディスクリプタ: ファイルあたり 16 接続はすぐ積み上がります。上限を上げます:
ulimit -n 65536(Linux)を aria2 起動前に。サービスでは systemd ユニットにLimitNOFILEを設定します。 - TCP 輻輳制御: BBR は損失のある回線でスループットを改善することが多いです。
sysctl net.ipv4.tcp_congestion_control=bbr(利用可能な場合)。 - 有線を優先 + IPv4/IPv6 の健全性: ホストで IPv6 が壊れているなら
disable-ipv6=trueにして遅いフォールバックを避けます。 - プロキシ: 遅いプロキシはすべてを制限します。
--all-proxyあり/なしで計測してください。
# Linux: 現在のシェルで fd 上限を上げてから aria2 を実行 ulimit -n 65536 aria2c --max-concurrent-downloads=5 --max-connection-per-server=16 URL
ハードウェア最適化コンフィグジェネレーター
ハードウェアを選ぶと、aria2.conf 用のパフォーマンスブロックを生成します:
生成されたブロックは出発点です – 計測(次節)して調整してください。
計測 & ベンチマーク
推測せず計測します。簡単な 2 つの方法:
# 1. aria2 自身による 5 秒ごとのライブサマリー
aria2c --summary-interval=5 -x 16 -s 16 https://example.com/large.iso
# 2. 稼働中デーモンの現在速度を JSON-RPC で取得
curl -s http://127.0.0.1:6800/jsonrpc -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":"1","method":"aria2.getGlobalStat","params":["token:SECRET"]}'
- それ自体がボトルネックでないホストの大きなファイルを使います(大手ディストロのミラーや公開テストファイル)。
- 一度に 1 変数だけ変えます(
-x、次に-s、次にdisk-cache) - テスト中のディスク使用率を監視 – 100% に張り付けば、制限はネットワークではなく I/O です。
トラブルシューティング & FAQ
シーダーがいても BitTorrent が 0 KB/s
原因: 古い/死んだトラッカー、または内向きポートなし。
解決: トラッカーリストから新しいトラッカーを追加し、DHT/LPD を有効にし、ルーターで listen-port を TCP+UDP 転送します。
ダウンロード中にシステムがフリーズ / ディスク使用率 100%
原因: HDD での事前割り当てと多数の小さな書き込み。
解決: file-allocation=falloc(または trunc)、disk-cache を上げ、-x/max-concurrent-downloads を下げます。
回線よりずっと低い速度で頭打ちになる
原因: サーバー側の絞り込み、max-download-limit/max-overall-download-limit の上限、または遅いプロキシ。
解決: 上限を確認(0 = 無制限)、-x を上げ、プロキシなしでテストします。
接続数はいくつにすべき?
aria2 は max-connection-per-server を 16 に制限します。高速回線は 16、通常のブロードバンドは 8、403/429 を返すサーバーは 4 から始めます。
回線を飽和させないようにするには?
max-overall-download-limit=50M と max-overall-upload-limit=5M を設定します。これらは全ダウンロードの合計を制限します。
SSD でも disk-cache のサイズは意味がありますか?
HDD ほどではありませんが、適度なキャッシュ(64M)は書き込みを滑らかにし摩耗を減らします。RAM で許容できる以上に大きくしないでください。
関連リソース
- aria2.conf ジェネレーター – 完全な設定を視覚的に作成
- オプションリファレンス – 本ガイドで使う全フラグと例
- BitTorrent トラッカーリスト – スウォームを維持
- yt-dlp + aria2 – メディアダウンロードを高速化
- トラブルシューティング – よくある aria2 のエラーと具体的な対処
- .aria2 ガイド — 途中のダウンロードを再開・復旧