> A simple test you could run on your server is fetching directory info
> from nodes that have directory functionality enabled.
Thanks for the idea. blutmagie offers a CSV list of its current result set, so this ended up being quite easy to automate.
I fetched a copy of the CSV to the server:
Then I picked out the columns I cared about, included only Exits with a Dirport, then sorted by the bandwidth column, and grabbed the fastest 50:
awk -F \, '{if ($10 == "1" && $8 != "None") print $3, $5, $8}' Tor_query_EXPORT.csv | sort -nr | head -50 > top-50-exits-with-dirport.txt
That file now looks like:
34994 37.130.227.133 80
33134 176.126.252.11 443
30736 176.126.252.12 21
30720 77.247.181.164 80
26958 77.247.181.166 80
<snip>
So we now have the bandwidth, IP, and dirport of the fastest exits. With this list in hand, I just needed to form a proper URL, wget each one, and grep out the transfer speed:
for URL in $(awk '{print "http://" $2 ":" $3 "/tor/server/all"}' top-50-exits-with-dirport.txt); do printf "$URL " && wget $URL -O /dev/null 2>&1 | grep -o "[0-9.]\+ [KM]*B/s"; done
The output ends up looking like this (only displaying the first 10 for brevity):
I'm not seeing anything immediately, although I need to run it on a larger set. There's no smoking gun so far though. Some of the speeds are a bit slow, but nothing low enough to explain the extremely low measured bandwidth these relays are getting. I think I'll clean this up a bit, put it into an actual script, and try running it on another server on a different AS for comparison.