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 のメモリーを使用することは珍しいことではありません。