Якщо ваш ретранслятор Tor використовує більше пам'яті, ніж вам хотілося б, ось кілька порад щодо зменшення її обсягу:
- Якщо ви працюєте в Linux, ви можете зіткнутися з помилкою фрагментації пам'яті в реалізації malloc у glibc.
Тобто, коли Tor звільняє пам’ять для системи, масиви пам’яті фрагментовані, і їх важко повторно використовувати.
Tor tarball постачається з реалізацією malloc OpenBSD, яка не має такої кількості помилок фрагментації (але компроміс полягає в більшому завантаженні процесора).
Ви можете вказати Tor використовувати цю реалізацію malloc замість:
./configure --enable-openbsd-malloc
.
- Якщо ви використовуєте швидкий вузол, тобто у вас багато відкритих TLS-з'єднань, ви можете втрачати багато пам'яті для внутрішніх буферів OpenSSL (38 кБ+ на сокет).
Ми виправили OpenSSL для більш агресивного звільнення буферної пам'яті, що не використовується.
Якщо ви оновите до OpenSSL 1.0.0 або новішої версії, процес Tor автоматично розпізнає та використовуватиме цю функцію.
- Якщо ви все ще не можете впоратися із навантаженням на пам’ять, подумайте про зменшення пропускної здатності, оголошену для вашого ретранслятора.
Оголошення меншої пропускної здатності означає, що ви залучите менше користувачів, тому ваш ретранслятор не буде великим.
Перегляньте параметр
MaxAdvertisedBandwidth
на головній сторінці.
Все це говорить про те, що швидкісні ретранслятори Tor дійсно використовують багато оперативної пам’яті. Досить часто швидкий вихідний ретранслятор використовує 500-1000 МБ пам'яті.