Start with optimizing the Tor daemon itself. These torrc settings can improve circuit establishment and descriptor availability:
# /etc/tor/torrc - Performance optimizations
HiddenServiceDir /var/lib/tor/my_service/
HiddenServicePort 80 127.0.0.1:8080
HiddenServiceVersion 3
# Increase number of introduction points (default 3, max 20)
HiddenServiceNumIntroductionPoints 6
# Enable single-hop rendezvous if server identity is public
# (reduces latency by ~40% but reveals server location)
# HiddenServiceSingleHopMode 1
# HiddenServiceNonAnonymousMode 1
# Connection padding - reduces latency fingerprinting
ConnectionPadding 1
# Optimize circuit creation
CircuitBuildTimeout 30
LearnCircuitBuildTimeout 1Increasing HiddenServiceNumIntroductionPoints from the default 3 to 6 provides more paths for clients to reach your service, reducing the chance of hitting an overloaded or distant introduction point. This is especially effective for services with global audiences.
The single-hop mode (HiddenServiceSingleHopMode) cuts latency significantly but reveals your server's IP to the Tor network. Only use this if your server identity is already public and you care more about speed than anonymity.