Ваш узел Tor использует больше памяти, чем вам бы хотелось? Вот почему это может происходить:
- Если вы используете Linux, вероятны проблемы фрагментации памяти в реализации функции "malloc" в библиотеке "glibc".
Иными словами, когда Tor освобождает память для системы, кусочки памяти настолько фрагментированы, что их сложно использовать повторно.
Архив исходных кодов Tor поставляется с реализаций функции "malloc" из OpenBSD. В ней меньше проблем с фрагментацией, но выше нагрузка на процессор.
Можно указать Tor использовать эту реализацию функции "malloc" следующим образом:
./configure --enable-openbsd-malloc
.
- Если у вас быстрый узел (много открытых TLS-соединений), вы наверняка теряете много памяти на внутренние буферы библиотеки OpenSSL (по 38+ Кб на соединение).
Мы изменили OpenSSL, чтобы библиотека активнее освобождала неиспользуемые буферы.
Если вы используете OpenSSL 1.0.0 или более позднюю версию, процесс сборки Tor автоматически использует эту возможность.
- Если потребление памяти по-прежнему велико, попробуйте уменьшить пропускную способность, анонсируемую вашим узлом.
Анонс меньшей пропускной способности привлечёт меньше пользователей. Узел не так сильно будет потреблять память.
Подробнее опция
MaxAdvertisedBandwidth
описана в руководстве.
Быстрые узлы Tor обычно потребляют довольно много памяти. Быстрый выходной узел вполне может требовать 500-1000 Мб памяти.