Tor リレーが必要以上にメモリーを使用している場合は、以下の方法でメモリー使用量を減らすことができます。
- Linux をご利用の場合は、glibc の malloc 実装でメモリーの断片化バグに遭遇しているのかもしれません。
つまり、Tor がメモリーをシステムに解放するとき、メモリーの断片は再利用しにくいように断片化されます。
Tor tarball には OpenBSD の malloc 実装が含まれており、フラグメンテーションのバグはそれほど多くありません (ただし、その代償として CPU 負荷が高くなります) 。
代わりにこの malloc 実装を使うよう Tor に指示できます。
./configure --enable-openbsd-malloc
- 高速リレーを実行している場合、つまり多くの TLS 接続を開いている場合は、OpenSSL の内部バッファ (ソケットあたり 38KB 以上) に大量のメモリーが失われている可能性があります。
未使用のバッファメモリーをより積極的に解放するように OpenSSL にパッチを当てました。
OpenSSL 1.0.0 以降に更新すると、Tor のビルドプロセスが自動的にこの機能を認識して使用します。
- それでもメモリー負荷を処理できない場合は、リレーが宣伝する帯域幅の量を減らすことをご検討ください。
宣伝する帯域幅が少ないということは、引き付けるユーザーを減らせることを意味するので、リレーはそれほど大きくならないはずです。
マニュアルページの
MaxAdvertisedBandwidth
オプションをご覧ください。
とはいえ、高速な Tor リレーは多くの RAM を使用します。高速な出口リレーが 500~1000 MB のメモリーを使用することは珍しいことではありません。