如果您的洋蔥路由中繼節點使用的記憶體超過您的預期,可以嘗試以下方式來降低該使用率:

  • 如果您是使用Linux系統的話,有可能是遭遇到了在Glibc的malloc函式裡的記憶體碎裂臭蟲。 也就是說,當洋蔥路由程式將記憶體釋放回作業系統後,出現破碎的記憶體空間,故難以被再度利用。 目前 Tor tarball套件包裡有預載 OpenBSD版本的 malloc 函式,此版本的函式較少發生記憶體碎裂的問題(但是代價就是中央處理器的使用率會比較高)。 您可以透過這個設定,來要求 Tor 程式使用此版本的malloc函式:./configure --enable-openbsd-malloc
  • 若您架設的是較高速的中繼節點的話,那就會有很多條TLS的連線同時開通,此時OpenSSL的內部緩衝區就會佔用掉大量的記憶體空間(每個網路接套約須38KB的空間)。 我們已有特別針對OpenSSL程式進行修補過,讓它會更積極的釋放出緩衝區記憶體空間。 若您把OpenSSL更新到1.0.0或更新的版本,洋蔥路由行程就會自動識別並且啟用該功能。
  • 如果您還是無法控制記憶體使用量的話,可以考慮調降中繼節點的額定頻寬。 對外廣播較低的可用頻寬值可以減少吸引到的使用者,進而就會降低中繼節點主機的負載量。 請參閱主頁的MaxAdvertisedBandwidth設定項目。

總而言之,高速的洋蔥路由中繼節點通常都會使用較多的主記憶體空間,因此它在運行狀態中佔用掉500-1000MB的記憶體空間是很常見的現象。