# [tor-commits] [tech-reports/master] Add raw torperf report from 2009.

karsten at torproject.org karsten at torproject.org
Tue Aug 7 18:35:09 UTC 2012

commit d3340eee2d1111be5e46b887279be75d5c70bc5c
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Tue Aug 7 15:38:08 2012 +0200

Add raw torperf report from 2009.
---
2009/torperf/.gitignore          |    3 +
2009/torperf/connected.png       |  Bin 0 -> 28545 bytes
2009/torperf/firstbyte.png       |  Bin 0 -> 26002 bytes
2009/torperf/large-smoothed.png  |  Bin 0 -> 89679 bytes
2009/torperf/medium-smoothed.png |  Bin 0 -> 76407 bytes
2009/torperf/small-smoothed.png  |  Bin 0 -> 59449 bytes
2009/torperf/torperf.tex         |  156 ++++++++++++++++++++++++++++++++++++++
8 files changed, 159 insertions(+), 0 deletions(-)

diff --git a/2009/torperf/.gitignore b/2009/torperf/.gitignore
new file mode 100644
index 0000000..c22ae93
--- /dev/null
+++ b/2009/torperf/.gitignore
@@ -0,0 +1,3 @@
+torperf.pdf
+torperf-2009-09-22.pdf
+
diff --git a/2009/torperf/connected.png b/2009/torperf/connected.png
new file mode 100644
index 0000000..ddf0b73
Binary files /dev/null and b/2009/torperf/connected.png differ
new file mode 100644
index 0000000..33aa08f
diff --git a/2009/torperf/firstbyte.png b/2009/torperf/firstbyte.png
new file mode 100644
index 0000000..01f6bd2
Binary files /dev/null and b/2009/torperf/firstbyte.png differ
diff --git a/2009/torperf/large-smoothed.png b/2009/torperf/large-smoothed.png
new file mode 100644
index 0000000..7bdb33c
Binary files /dev/null and b/2009/torperf/large-smoothed.png differ
diff --git a/2009/torperf/medium-smoothed.png b/2009/torperf/medium-smoothed.png
new file mode 100644
index 0000000..24a2ace
Binary files /dev/null and b/2009/torperf/medium-smoothed.png differ
diff --git a/2009/torperf/small-smoothed.png b/2009/torperf/small-smoothed.png
new file mode 100644
index 0000000..9e12548
Binary files /dev/null and b/2009/torperf/small-smoothed.png differ
diff --git a/2009/torperf/torperf.tex b/2009/torperf/torperf.tex
new file mode 100644
index 0000000..8697a91
--- /dev/null
+++ b/2009/torperf/torperf.tex
@@ -0,0 +1,156 @@
+\documentclass{article}
+\usepackage{url}
+\usepackage[dvips]{graphicx}
+\usepackage{graphics}
+\usepackage{color}
+\usepackage{booktabs}
+\usepackage{multirow}
+\begin{document}
+\title{Performance of Requests over the Tor Network}
+\author{Karsten Loesing}
+\maketitle
+
+\section{Introduction}
+
+Many users perceive the general performance of the Tor network as rather
+slow.
+Little is known, though, about real-world measurements of latency and
+throughput of requests routed via the Tor network.
+Such measurements are required to evaluate the effectiveness of possible
+improvements.
+This report presents a simple measurement setup to gather response times of
+three different request sizes as well as the first months of results
+between June 10 and September 22, 2009.
+
+\section{Measurement Setup}
+
+The performance (latency and throughput) that Tor users experience depends
+on numerous factors and is the subject of current research.
+In order to evaluate progress in improving Tor's performance, we need to
+continuously measure how fast Tor really is for our users.
+The primary purpose of these measurements is to compare how performance
+evolves over time.
+This measurement setup uses a trivial SOCKS client to download files of
+various sizes over the Tor network and write down how long substeps take.
+The following configuration parameters are used:
+
+\begin{itemize}
+minutes,\linebreak \texttt{MaxCircuitDirtiness} of 1 minute, no entry
+guards.
+\item 1 MiB file, downloaded every 30 minutes, timeout of 29:55 minutes,
+default \texttt{MaxCircuitDirtiness} of 10 minutes, no entry guards.
+\item 5 MiB file, downloaded every 60 minutes, timeout of 59:55 minutes,
+default \texttt{MaxCircuitDirtiness} of 10 minutes, no entry guards.
+\end{itemize}
+
+A more detailed howto describing the setup can be found here:\linebreak
+\url{https://tor-svn.freehaven.net/svn/torperf/trunk/measurements-HOWTO}
+
+\section{Results}
+
+The measured times include three data points:
+The first measured time is the time to connect to the website.
+This step requires Tor to select a pre-built circuit (or create one in
+rare cases) and send a \texttt{CONNECT} command to the exit node.
+As soon as the exit node replies with a \texttt{CONNECTED} cell, the
+connection to the website is established.
+Figure~\ref{fig:connected} shows boxplots\footnote{Boxplots, or
+box-and-whisker plots, visualize the distribution of a variable: The box
+part contains all values within the second and third quartile of the data
+set with the strong line being the median.
+The dashed lines contain non-outlier values in an interval of 1.5 times
+the inter-quartile range below the first quartile and the same distance
+above the third quartile. Outliers are depicted as circles.} of the
+connection times.
+The numbers in parentheses denote the total number of runs, the number of
+runs that timed out, and the number of outliers that did not fit into the
+graph.
+The distributions are similar, because the connection time can be assumed
+independent of the size of the requested file.
+
+\begin{figure}
+\centering
+\includegraphics[width=.75\textwidth]{connected.png}
+\caption{Time to connect to website}
+\label{fig:connected}
+\end{figure}
+
+The second measured time is the time between starting a request and
+receiving the first byte of the response.
+Figure~\ref{fig:firstbyte} shows these times for the three requested file
+sizes.
+Again, the distributions are very similar.
+The only explanation for deviations comes from the different request
+numbers.
+
+\begin{figure}
+\centering
+\includegraphics[width=.75\textwidth]{firstbyte.png}
+\caption{Time until receiving first response byte}
+\label{fig:firstbyte}
+\end{figure}
+
+The third measured time is the overall time to complete a request.
+These times include all steps from connecting to the website until having
+received all bytes of the response.
+Obviously, there are differences in the completion times for the
+three requested file sizes.
+
+\begin{figure}
+\centering
+\caption{Time to complete request}
+\end{figure}
+
+Figures~\ref{fig:small-smoothed} to \ref{fig:large-smoothed} visualize the
+request completion times over the complete measurement interval.
+These graphs show the medians and the first and third quartile over time.
+For every run, the median and quartiles are calculated from the interval
+starting 1 day before a data point and ending 1 day after the data point.
+This means that intervals contain 577 (97, 49) values, including the
+previous 288 (48, 24) data points, the following 288 (48, 24) data points,
+and the data point itself.
+
+\begin{figure}
+\centering
+\includegraphics[width=.8\textwidth]{small-smoothed.png}
+\caption{Time to complete 50 KiB request}
+\label{fig:small-smoothed}
+\end{figure}
+
+\begin{figure}
+\centering
+\includegraphics[width=.8\textwidth]{medium-smoothed.png}
+\caption{Time to complete 1 MiB request}
+\label{fig:medium-smoothed}
+\end{figure}
+
+\begin{figure}
+\centering
+\includegraphics[width=.8\textwidth]{large-smoothed.png}
+\caption{Time to complete 5 MiB request}
+\label{fig:large-smoothed}
+\end{figure}
+
+The three peaks in comletion times on gabelmoo in August, that are most
+visible in the 50~KiB times, are most likely a local problem due to
+The results of moria do not exhibit any such effects.
+
+The two drops in September are the result of including results of active
+bandwidth scanners in the directory votes.
+With these new bandwidth information, the measuring clients make use of
+
+\section{Discussion}
+