Why your Tor relay might be slow and how to improve its performance
If your Tor relay seems slow or under-utilized, there are several possible causes - from system limits to network peering to Tor's own bandwidth measurements - and practical steps you can take to diagnose and improve its speed.
Why relay load varies
Tor は、ネットワーク全体の帯域幅を管理します。これはほとんどのリレーで適切に機能します。 しかし、Tor の目標は BitTorrent のようなプロトコルとは異なります。 Tor は、ヘッドルームを備えた高速接続を必要とする、低遅延のウェブページを求めています。 BitTorrent は、すべての帯域幅を使用する必要がある一括ダウンロードが必要です。
私たちは新しい帯域幅スキャナを開発しています。 測定されていないリレーや、測定値が低いリレーの診断機能も備えています。
なぜ Tor に帯域幅スキャナが必要なのですか?
ほとんどのプロバイダーは、ローカル接続の最大速度を表示します。 しかし、Tor には世界中にユーザーがいて、ユーザーはランダムに1つか2つのガードリレーに接続します。 そのため、各リレーがどれだけうまく全世界に接続できるかを知る必要があります。
そのため、すべてのリレーオペレーターが宣伝している帯域幅をローカル接続速度に設定したとしても、インターネットの異なる部分間で負荷を分散させるために帯域幅管理機関が必要になります。
通常のリレー負荷とは何ですか?
ほとんどのリレーは通常、容量の30%から80%の負荷がかかります。 これはクライアントにとって良いことです。過負荷のリレーは遅延が大きくなります。 (各リレーに10%の負荷がかかるように十分なリレーが必要です。そうすれば、Tor は一般的なインターネットとほぼ同じ速度になります) 。
リレーの速度が遅いのは、プロセッサーの速度が遅いか、接続が制限されているためです。 リレーが他のほとんどの Tor リレーと正しくピアリングしていないか、距離が遠く離れていることでネットワークが遅い場合もあります。
リレーを制限している原因の特定
リレーを遅くする原因は多数あります。ここでは、それらを突き止める方法をご紹介します。
システムの制限
- リレーの RAM、CPU、およびソケット/ファイル記述子の使用状況をご確認ください。
Tor は起動時にこれらのログの一部を記録します。その他は、top または同様のツールを使用して表示できます。
プロバイダーの制限
- リレーのプロバイダーから他のリレーへのインターネットピアリング (帯域幅、遅延) を確認します。 Comcast (米国の ISP) 経由のリレーは、たまに時間がかかることがあります。 北米や西ヨーロッパ以外でのリレーは、通常さらに遅いです。
Tor ネットワークの制限
リレー帯域幅は、リレー自身の観測帯域幅、またはディレクトリー管理機関の測定帯域幅によって制限できます。 リレーを制限している測定値を調べる方法は以下の通りです。
- コンセンサス状態でリレーの各投票や中央値を確認します。 リレーが一部のディレクトリー管理機関で運用中とマークされていない場合:
- IPv4 または IPv6 アドレスをお間違いではありませんか?
- その IPv4 または IPv6 アドレスは、いくつかのネットワークから接続不可能ですか?
- IPv4 アドレスに2つ以上のリレーがありますか?
それ以外の場合は、リレーの観測帯域幅と帯域幅レート (制限) を確認します。 メトリクスでリレーを検索します。 次に、帯域幅の見出しにマウスを合わせると、観測された帯域幅とリレー帯域幅レートが表示されます。
以下はその詳細と例の コンセンサスウェイトの低下と出口リレーの上昇速度です。
修正方法
これらの数値の最小値は、リレーに割り当てられる帯域幅を制限します。
- 帯域幅レートが原因の場合は、torrc の BandwidthRate/Burst または RelayBandwidthRate/Burst を増やしてください。
- 観測された帯域幅であれば、リレーは自分自身が速くなっていることを確認するまで、それ以上の帯域幅を要求しません。 遅い原因を突き止める必要があります。
- 測定された帯域幅の中央値であれば、大半の帯域幅管理機関からはリレーが低速に見えます。 計測が遅い理由を突き止める必要があります。
独自のリレー測定を行う
リレーが遅いと判断した場合、または帯域幅管理機関が遅いと判断した場合は、自分で帯域幅をテストできます。
- Tor を使用してテストを実行し、Tor がネットワーク上でどの程度高速になるかを確認します。
このためには、リレーをエントリーとして使用するように Tor クライアントを設定する必要があります。 リレーに Guard フラグしかない場合は、torrc で EntryNodes にリレーフィンガープリントを設定してください。 リレーに Guard フラグがないか、Guard フラグと Exit フラグがある場合、リレーを入口ノードとして設定することはできません (参照: https://gitlab.torproject.org/tpo/core/tor/-/issues/22204) が、ブリッジでなくてもブリッジとして設定することはできます。 リレーをブリッジとして設定するには、torrc に以下の内容を追加してください。
Bridge <ip>:<port>
UseBridge 1
次に socks プロキシとして SocksPort を使用して、大きなファイルをダウンロードします。 これには、例えば curl をご利用いただけます。
curl https://target/path --proxy socks5h://<user>:<password>@127.0.0.1:<socks-port>
異なる user/password を使用すると、異なる回線が保証されます。また $RANDOM をご利用いただけます。
そうすれば、あなたのリレーがどれだけのトラフィックを維持できるか、ある程度の見当がつきます。
あるいは、sbws と同じように、relay_bw を実行して、2ホップの回線を使ってリレーをテストすることもできます。
- Tor と chutney を使ってテストを行い、Tor があなたの CPU でどれくらいの速度が出るかを調べます。 帯域幅の増加が止まるまで、データ量を増やし続けます。