# Warum dein Tor-Relay langsam sein könnte und wie du seine Leistung verbessern kannst

### Warum die Relaylast variiert

Tor verwaltet die Bandbreite im gesamten Netzwerk. Für die meisten Relays macht es einen vernünftigen Job. Doch die Ziele von Tor sind anders als bei Protokollen wie BitTorrent. Tor will Webseiten mit niedriger Latenz, was schnelle Verbindungen mit Reserven erfordert. BitTorrent will Massendownloads, was die Nutzung der gesamten Bandbreite erfordert.

Wir arbeiten an einem neuen Bandbreitenscanner, der einfacher zu verstehen und zu warten ist. Es verfügt über Diagnosen für Relays, die nicht gemessen werden, und Relays, die niedrige Messwerte aufweisen.

### Weshalb braucht Tor Bandbreitenscanner?

Die meisten Anbieter geben dir die maximale Geschwindigkeit deines lokalen Anschlusses an. Doch Tor hat Benutzer auf der gesamten Erde, und unsere Benutzer verbinden sich zufällig mit einem oder zwei Wächter-Relays. Wir müssen also wissen, wie gut jedes Relay mit der ganzen Welt verbunden werden kann.

Selbst wenn also alle Relay-Betreiber ihre beworbene Bandbreite auf ihre lokale Verbindungsgeschwindigkeit einstellen würden, bräuchten wir immer noch Bandbreiteninstanzen, um die Last zwischen verschiedenen Teilen des Internets auszugleichen.

### Was ist eine normale Relay-Last?

Es ist normal, dass die meisten Relays mit 30%-80% ihrer Kapazität belastet werden. Dies ist gut für die Clients: Ein überlastetes Relay hat eine hohe Latenz. (Wir wollen genug Relays, so dass jedes Relay zu 10% ausgelastet ist. Dann wäre Tor fast so schnell wie das breitere Internet).

Manchmal ist ein Relay langsam, weil sein Prozessor langsam ist oder seine Verbindungen begrenzt sind. In anderen Fällen ist es das Netzwerk, das langsam ist: das Relay hat ein schlechtes Peering zu den meisten anderen Tor-Relays oder ist sehr weit entfernt.

### Herausfinden, was ein Relay einschränkt

Viele Dinge können ein Relay ausbremsen. Hier erfährst du, wie du sie aufspüren kannst.

#### System-Grenzwerte

- Überprüfe die RAM-, CPU- und Socket-/Dateideskriptor-Auslastung auf deinem Relay

Tor protokolliert einiges davon, wenn es startet. Andere können mit top oder ähnlichen Tools eingesehen werden.

#### Provider-Grenzwerte

- Prüfe das Internet-Peering (Bandbreite, Latenz) vom Provider deines Relays zu anderen Relays. Die Relays, die über Comcast übertragen werden, waren zeitweise langsam. Relays außerhalb Nordamerikas und Westeuropas sind in der Regel langsamer.

#### Tor-Netzwerk-Grenzwerte

Die Relay-Bandbreite kann durch die vom Relay selbst beobachtete Bandbreite oder durch die gemessene Bandbreite der Verzeichnisbehörden begrenzt werden. So findest du heraus, welche Messung dein Relay einschränkt:

- Prüfe jede der Stimmen für dein Relay auf consensus-health (große Seite), und prüfe den Mittelwert. Wenn dein Relay von einigen Verzeichnisbehörden nicht als „Running“ gekennzeichnet ist:
- Hat es die falsche IPv4- oder IPv6-Adresse?
- Ist seine IPv4- oder IPv6-Adresse von einigen Netzwerken aus unerreichbar?
- Sind da mehr als 2 Relays auf seiner IPv4-Adresse?

Andernfalls überprüfe die von deinem Relay beobachtete Bandbreite und Bandbreitenrate (Limit). Schlage dein Relay in den Metriken nach. Fahre dann mit der Maus über die Überschrift „Bandbreite“, um die beobachtete Bandbreite und die Relay-Bandbreitenrate zu sehen.

Hier findest du weitere Details und einige Beispiele: Drop in consensus weight und Rampup speed of Exit relay.

#### Wie man es behebt

Die kleinste dieser Zahlen ist die Begrenzung der dem Relay zugewiesenen Bandbreite.

- Wenn es an der Bandbreitenrate liegt, erhöhe die BandwidthRate/Burst oder RelayBandwidthRate/Burst in deiner torrc.
- Wenn es sich um die beobachtete Bandbreite handelt, wird dein Relay nicht nach mehr Bandbreite fragen, bis es sieht, dass es selbst schneller wird. Du musst herausfinden, warum es langsam ist.
- Wenn es sich um den Mittelwert der gemessenen Bandbreite handelt, sieht dein Relay aus Sicht der Mehrheit der Bandbreitenbehörden langsam aus. Du musst herausfinden, warum sie es langsam messen.

### Eigene Relaymessungen durchführen

Wenn dein Relay meint, es sei langsam, oder die Bandbreitenbehörden meinen, es sei langsam, kannst du die Bandbreite selbst testen:

- Führe einen Test mit Tor durch, um zu sehen, welche Geschwindigkeit Tor mit deinem Netzwerk erreichen kann

Dazu musst du einen Tor-Client so konfigurieren, dass er dein Relay als Eingang verwendet. Wenn dein Relay nur die `Guard`-Markierung hat, setze `EntryNodes` mit deinem Relay Fingerprint in `torrc`. Wenn dein Relay keine `Guard`-Markierung hat oder `Guard`- und `Exit`-Markierungen hat, kannst du dein Relay nicht als Einstiegsknoten setzen (siehe https://gitlab.torproject.org/tpo/core/tor/-/issues/22204), aber du kannst es als deine Brücke setzen, auch wenn es keine Brücke ist. Um dein Relay als Bridge einzurichten, füge zu deiner `torrc` hinzu:

    Bridge <ip>:<port>
    UseBridge 1

Lade dann eine große Datei herunter, indem du deinen `SocksPort` als Socks-Proxy benutzt. Hierfür kannst du `curl` verwenden, z.B.:

    curl https://target/path --proxy socks5h://<user>:<password>@127.0.0.1:<socks-port>

Die Verwendung unterschiedlicher Benutzer (`user`) oder Passwörter (`password`) garantiert unterschiedliche Kanäle. Du kannst `$RANDOM` verwenden.

Das gibt dir eine Vorstellung davon, wie viel Verkehr dein Relay verkraften kann.

Alternativ kannst du relay_bw ausführen, um dein Relay mit 2 Hops-Schaltungen zu testen, ähnlich wie es sbws tut.

- Führe einen Test mit Tor und Chutney durch, um herauszufinden, wie schnell Tor mit deiner CPU werden kann. Erhöhe das Datenvolumen so lange, bis die Bandbreite nicht mehr zunimmt.