如果你的 Tor 中继服务器使用了比你预想中更多的记忆储存,这儿有几条减少足迹的贴士:

  • 如果你是 Linux 操作系统,你也许会在glibc的动态内存分配操作里遇到记忆储存碎片故障。 这就是说,当 or 将记忆储存释放回系统后,这些记忆储存的片段被分成了许多碎片,很难再被利用。 Tor 原始码是用 OpenBSD 的动态内存分配操作进行运输的,这个方法没有那么多的碎片故障(但代价是更高的 CPU 负荷)。 You can tell Tor to use this malloc implementation instead: ./configure --enable-openbsd-malloc.
  • 如果你正在运行一个高速中继服务器,这意味着你拥有许多 TLS 连接处于打开状态,你可能正有大量内存流失到了 OpenSSL 的内部缓冲储存器里(每个数据包 38KB+)。 我们已经给 OpenSSL 打过了补丁,来更激进地释放未使用的缓冲区记忆储存. 如果你升级到 OpenSSL 1.0.0或更新的版本,Tor 的构造进程会自动识别并使用这个特点。
  • 如果你仍然解决不了记忆存储加载的问题,不妨考虑一下减少你的中继服务器公布的带宽。 展示较少的带宽意味着你会吸引较少的用户,所以你的中继服务器的规模应该不会变得很大。 请查阅主页中的MaxAdvertisedBandwidth选项。

所有这些都说明,Tor 高速中继确实需要大量内存。高速出口节点占用500-1000 MB内存是不正常的。