[tor-commits] [stegotorus/master] More benchmark tweakage
zwol at torproject.org
zwol at torproject.org
Fri Jul 20 23:17:07 UTC 2012
commit d65537f80ad1f2171a9bcca8531d17a9d3281097
Author: Zack Weinberg <zackw at panix.com>
Date: Tue Feb 14 15:01:57 2012 -0800
More benchmark tweakage
---
scripts/benchmark.py | 50 +++++++++++++++++---------------------------------
scripts/bm-mcurl.c | 4 ++--
2 files changed, 19 insertions(+), 35 deletions(-)
diff --git a/scripts/benchmark.py b/scripts/benchmark.py
index c6487b6..f4f8830 100755
--- a/scripts/benchmark.py
+++ b/scripts/benchmark.py
@@ -20,8 +20,6 @@
#
# bwm-ng: http://www.gropp.org/?id=projects&sub=bwm-ng
# curl: http://curl.haxx.se/
-# httperf: http://www.hpl.hp.com/research/linux/httperf/
-# tsocks: http://tsocks.sourceforge.net/about.php
# tor: https://torproject.org/
# stegotorus: you already have it :)
#
@@ -61,10 +59,9 @@ FUDGE_FIXEDRATE = 2.5
C_bwm = "bwm-ng"
C_curl = "curl"
-C_httperf = "httperf"
+C_mcurl = "bm-mcurl"
C_storus = "stegotorus-wrapper"
C_tor = "/usr/sbin/tor"
-C_tsocks = "/usr/lib/libtsocks.so"
P_nylon = "nylon"
P_storus = "stegotorus-wrapper"
@@ -97,9 +94,10 @@ def monitor(report, label, period):
(stamp, iface, upbytes, dnbytes, rest) = line.split(';', 4)
if iface == 'total': continue
- # convert to most compact possible form
- upbytes = str(float(upbytes))
- dnbytes = str(float(dnbytes))
+ # convert to most compact possible form,
+ # scale to decimal kilobytes
+ upbytes = str(float(upbytes)/1000)
+ dnbytes = str(float(dnbytes)/1000)
report.write("%s,%d,%s,%s\n" % (label,n,upbytes,dnbytes))
n += 1
@@ -279,24 +277,10 @@ def c_curl(url, proxyhost):
proxyhost + ":" + PROXY_PORT,
url, "-o", "/dev/null"))
-def c_httperf(prefix, rate, proxyhost):
- fp = open("tsocks.conf", "w")
- fp.write("""\
-server = %s
-local = %s/255.255.255.255
-server_port = %s
-server_type = 5
-""" % (proxyhost, proxyhost, PROXY_PORT))
- fp.close()
- return ClientProcess((C_httperf, "--hog",
- "--server=" + TARGET,
- "--uri=" + prefix,
- "--period=" + str(rate),
- "--num-calls=5", "--num-conns=2000",
- "--wset=10000,1"),
- { 'LD_PRELOAD' : C_tsocks,
- 'TSOCKS_CONF_FILE' :
- os.path.join(os.getcwd(), "tsocks.conf") })
+def c_mcurl(prefix, cps, proxyhost):
+ return ClientProcess((C_mcurl, str(cps), '200', proxyhost,
+ 'http://' + TARGET + '/' + prefix +
+ '/[0-9]/[0-9]/[0-9]/[0-9].html'))
# Benchmarks.
@@ -306,13 +290,13 @@ def bench_fixedrate_direct(report):
try:
proxy = p_nylon()
- for cap in range(10, 810, 10):
+ for cap in range(10,810,10):
sys.stderr.write("fixedrate,direct,%d\n" % (cap * 1000))
try:
client = c_curl('http://' + TARGET + '/bm-fixedrate.cgi/' +
str(int(cap * 1000 * FUDGE_FIXEDRATE)),
PROXY)
- monitor(report, "fixedrate,direct,%d" % (cap * 1000), 60)
+ monitor(report, "fixedrate,direct,%d" % cap, 60)
finally:
if client is not None:
client.terminate()
@@ -333,12 +317,12 @@ def bench_fixedrate_tor(report):
time.sleep(5) # tor startup is slow
for cap in range(10,810,10):
- sys.stderr.write("fixedrate,tor,%d\n" % (cap * 1000))
+ sys.stderr.write("fixedrate,tor,%d\n" % cap)
try:
client = c_curl('http://' + TARGET + '/bm-fixedrate.cgi/' +
str(int(cap * 1000 * FUDGE_FIXEDRATE)),
'127.0.0.1')
- monitor(report, "fixedrate,tor,%d" % (cap * 1000), 60)
+ monitor(report, "fixedrate,tor,%d" % cap, 60)
finally:
if client is not None:
client.terminate()
@@ -358,10 +342,10 @@ def bench_files_direct(report, prefix):
try:
proxy = p_nylon()
- for cps in range(1,81):
+ for cps in range(1,151):
sys.stderr.write("files.%s,direct,%d\n" % (prefix, cps))
try:
- client = c_httperf(prefix, 1./cps, PROXY_IP)
+ client = c_mcurl(prefix, cps, PROXY_IP)
monitor(report, "files.%s,direct,%d" % (prefix, cps), 60)
finally:
if client is not None:
@@ -382,10 +366,10 @@ def bench_files_tor(report, prefix):
proxyl = c_tor_direct()
time.sleep(5) # tor startup is slow
- for cps in range(1,81):
+ for cps in range(1,151):
sys.stderr.write("files.%s,tor,%d\n" % (prefix, cps))
try:
- client = c_httperf(prefix, 1./cps, '127.0.0.1')
+ client = c_mcurl(prefix, cps, '127.0.0.1')
monitor(report, "files.%s,tor,%d" % (prefix, cps), 60)
finally:
if client is not None:
diff --git a/scripts/bm-mcurl.c b/scripts/bm-mcurl.c
index 890b9e4..7fb03a0 100644
--- a/scripts/bm-mcurl.c
+++ b/scripts/bm-mcurl.c
@@ -162,9 +162,9 @@ process_urls(struct url_iter *it, CURLM *multi, CURL **handles,
last = now;
url = url_next(it);
if (url) {
- if (curl_easy_setopt(handles[maxh], CURLOPT_URL, url) != CURLM_OK)
+ if (curl_easy_setopt(handles[maxh], CURLOPT_URL, url))
abort();
- if (curl_multi_add_handle(multi, handles[maxh]) != CURLM_OK)
+ if (curl_multi_add_handle(multi, handles[maxh]))
abort();
maxh++;
free(url); /* curl takes a copy */
More information about the tor-commits
mailing list