メインコンテンツへスキップ

aria2 速度 & BitTorrent 最適化

完全なパフォーマンスガイド: 速度がどこから来るのか、効く HTTP と BitTorrent の設定、ディスクと OS の調整、そして遅いダウンロードの計測とデバッグ方法。Raspberry Pi から 10 Gbps シードボックスまで対応します。

最終確認 2026-09 · aria2 v1.37.0

はじめる前に

値は ~/.aria2/aria2.conf、%USERPROFILE%\.aria2\aria2.conf で変更するか、CLI フラグとして渡します。オプションリファレンス参照。

速度はどこから来るか

「aria2 が遅い」はほぼ必ず 4 つのボトルネックのどれかです。順に解消してください:

  1. 接続数。 aria2 の HTTP 既定は max-connection-per-server=1 だけです。これを上げるのが絞られた回線での最大の改善です。
  2. ピア/トラッカーの健全性(BitTorrent)。 死んだトラッカーやポート未転送 = ピアなし = 0 KB/s。
  3. ディスク I/O。 飽和した HDD は高速ダウンロードを停止させます。事前割り当てとディスクキャッシュで解決します。
  4. OS の上限。 数千接続を扱う段階ではファイルディスクリプタと TCP の調整が効きます。

上限は自分だけのものではありません。サーバー側の絞り込み、ピアリング、回線速度も結果を制限します。あなたは自分側のボトルネックだけを取り除けます。

HTTP / FTP の調整

HTTP 調整オプション(既定値と推奨値)
オプション既定推奨効果
max-connection-per-server18–16ホストごとの並列ソケット – 最大のレバー
split58–16ファイルを分割するチャンク数
min-split-size20M1M–10M小さいほど小ファイルで分割が増える(オーバーヘッド増)
max-concurrent-downloads53–8並列ファイル数。高すぎると各々が細る
max-tries / retry-wait5 / 05 / 3–10不安定なホストでの堅牢性
timeout / connect-timeout60 / 6030 / 30ハングせず早期に失敗し再試行
lowest-speed-limit010K–50K停止した接続を切り、再試行で良好な接続を選ぶ
max-overall-download-limit00(または上限)全体速度上限。帯域を共有する場合に設定
積極的な HTTP ブロック(高速で寛容なサーバー向け)
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 の最も一般的な実際の原因は、単に到達可能なピアがいないことです: ポート未転送、または死んだトラッカー。

高性能 BitTorrent ブロック
# 発見
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 で、ファイル全体にゼロを書き、大容量ダウンロードでシステム全体を止めることがあります。ストレージに応じて選びます:

file-allocation モード
モード仕組み最適な用途
fallocposix_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  # このサイズ超のファイルのみ事前割り当て(任意)

OS & ネットワークの調整

# 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"]}'

トラブルシューティング & 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 で許容できる以上に大きくしないでください。