Why your Tor relay might be slow and how to improve its performance
If your Tor relay seems slow or under-utilized, there are several possible causes - from system limits to network peering to Tor's own bandwidth measurements - and practical steps you can take to diagnose and improve its speed.
Why relay load varies
Tor gestiona el ancho de banda a lo largo de la red completa. Hace un trabajo razonable para la mayoría de los repetidores. Pero los objetivos de Tor son diferentes de los de protocolos como BitTorrent. Tor quiere páginas web de baja latencia, lo cual requiere conexiones rápidas con capacidad de sobra. BitTorrent quiere descargas masivas, lo cual requiere usar todo el ancho de banda.
Estamos trabajando en un nuevo escáner de ancho de banda, el cual es más fácil de entender y mantener. Tendrá diagnósticos para repetidores que no son medidos, y repetidores que tienen bajas mediciones.
¿Por qué necesita Tor escáners de ancho de banda?
La mayoría de los proveedores te dicen la máxima velocidad de tu conexión local. Pero Tor tiene usuarios a lo largo del mundo, quienes se conectan a uno o dos repetidores guardianes al azar. Por lo que necesitamos saber qué tan bien puede conectarse cada repetidor al mundo entero.
Por eso, aunque todos los operadores de repetidores ajustaran su ancho de banda anunciado a la velocidad de su conexión local, seguiríamos necesitando autoridades de ancho de banda para equilibrar la carga entre las distintas partes de Internet.
¿Cuál es la carga normal de un repetidor?
Es normal para la mayoría de los repetidores estar cargados al 30%-80% de su capacidad. Esto es bueno para los clientes: un repetidor sobrecargado tiene alta latencia. (Queremos suficientes repetidores de manera que cada cual esté cargado al 10%. Entonces Tor sería casi tan rápido como Internet en su amplitud).
A veces, un repetidor es lento porque su procesador es lento, o sus conexiones son limitadas. Otras veces, es la red quien es lenta: el repetidor está mal apareado con la mayoría de los otros repetidores tor, o está ubicado a una gran distancia.
Entender qué está limitando un repetidor
Montones de cosas pueden hacer lento a un repetidor. He aquí como rastrearlas.
Límites del sistema
- Check RAM, CPU, and socket/file descriptor usage on your relay
Tor registra algunos de estos cuando arranca. Otros pueden ser visualizados usando top o herramientas similares.
Límites del proveedor
- Check the Internet peering (bandwidth, latency) from your relay's provider to other relays. Los repetidores transitando vía Comcast han sido lentos a veces. Los repetidores fuera de América del Norte y Europa Occidental usualmente son más lentos.
Límites de la red Tor
El ancho de banda de un repetidor puede estar limitado por el propio ancho de banda observado por él, o por el ancho de banda medido por las autoridades de directorio. He aquí cómo descubrir qué medida está limitando a tu repetidor:
- Check each of the votes for your relay on consensus-health (large page), and check the median. Si tu repetidor no está marcado Running por algunas autoridades de directorio:
- ¿Tiene las direcciones IPv4 o IPv6 equivocadas?
- ¿La dirección IPv4 o IPv6 es inalcanzable desde algunas redes?
- ¿Hay más de 2 repetidores en su dirección IPv4?
De otra manera, comprueba el ancho de banda observado de tu repetidor, y la tasa de ancho de banda (límite). Busca tu repetidor en Metrics. Luego pasa con el mouse por arriba del encabezado de ancho de banda para ver el ancho de banda observado y la tasa de ancho de banda del repetidor.
He aquí algún detalle más y algunos ejemplos: Caída en el peso del consenso y Velocidad de escalamiento de repetidores de salida.
Cómo arreglarlo
La más pequeña de estas cantidades está limitando el ancho de banda asignado al repetidor.
- If it's the bandwidth rate, increase the BandwidthRate/Burst or RelayBandwidthRate/Burst in your torrc.
- If it's the observed bandwidth, your relay won't ask for more bandwidth until it sees itself getting faster. Necesitas darte cuenta de por qué es lento.
- If it's the median measured bandwidth, your relay looks slow from a majority of bandwidth authorities. Necesitas darte cuenta de por qué lo midieron como lento.
Efectuar mediciones en tu propio repetidor
Si tu repetidor piensa que es lento, o así lo creen las autoridades de ancho de banda, puedes probar por tí mismo el ancho de banda:
- Run a test using tor to see how fast tor can get on your network
Para ello, es necesario configurar un cliente tor para utilizar tu repetidor como entrada. Si tu repetidor sólo tiene la etiqueta Guard, configura EntryNodes con la huella digital de tu repetidor en torrc. Si tu repetidor no tiene la etiqueta Guard o tiene las etiquetas Guard y Exit, no puedes configurar tu repetidor como un nodo de entrada (ver https://gitlab.torproject.org/tpo/core/tor/-/issues/22204), pero puedes configurarlo como tu puente, aunque no sea un puente. Para configurar tu repetidor como un puente, añade torrc:
Bridge <ip>:<port>
UseBridge 1
A continuación, descarga un archivo grande utilizando SocksPort como un proxy socks. Para ello, puedes utilizar curl, por ejemplo:
curl https://target/path --proxy socks5h://<user>:<password>@127.0.0.1:<socks-port>
El uso de diferentes user/password garantiza diferentes circuitos. Puedes usar $RANDOM.
Eso te dará una idea de cuánto tráfico puede soportar tu repetidor.
Alternativamente, puedes ejecutar relay_bw para probar tu repetidor utilizando los circuitos de 2 saltos, de forma similar a como lo hace sbws.
- Run a test using tor and chutney to find out how fast tor can get on your CPU. Sigue aumentando el volumen de datos hasta que el ancho de banda deje de aumentar.