# Por qué tu repetidor Tor tal vez es lento y como mejorar su rendimiento

### Por qué varía la carga del repetidor

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

- Comprueba la RAM, la CPU y el uso de sockets/descriptores de archivo en tu repetidor

Tor registra algunos de estos cuando arranca. Otros pueden ser visualizados usando top o herramientas similares.

#### Límites del proveedor

- Comprueba la calidad de comunicación de Internet (ancho de banda, latencia) desde el proveedor de tu repetidor a otros repetidores. 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:

- Comprueba cada uno de los votos para tu repetidor en consensus-health (una página grande), y mira la mediana. 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.

- Si es la proporción del ancho de banda, incrementa las directivas BandwidthRate/Burst o RelayBandwidthRate/Burst en tu torrc.
- Si es el ancho de banda observado, tu repetidor no solicitará más ancho de banda hasta que sea más rápido. Necesitas darte cuenta de por qué es lento.
- Si es la mediana del ancho de banda medido, tu repetidor aparece lento para la mayoría de autoridades de ancho de banda. 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:

- Haz una prueba para ver la velocidad de tor en tu red

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://destino/ruta --proxy socks5h://<usuario>:<contraseña>@127.0.0.1:<puerto-socks>

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.

- Haz una prueba usando tor y chutney para averiguar qué tan rápido puede llegar a ser tor en tu CPU. Sigue aumentando el volumen de datos hasta que el ancho de banda deje de aumentar.