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