May 2011 Apache Traffic Server performance

I just ran a small tests against Apache Traffic Server, to see how performance has improved since last time. My test box is my desktop, an Intel Core i7-920 at 2.67Ghz (no overclocking), and the client runs on a separate box, over a cheap GigE network (two switches in between). Here are the latest results:

2,306,882 fetches on 450 conns, 450 max parallel, 2.306882E+08 bytes, in 15 seconds
100 mean bytes/fetch
153,792.0 fetches/sec, 1.537920E+07 bytes/sec
msecs/connect: 5.326 mean, 13.078 max, 0.149 min
msecs/first-response: 2.094 mean, 579.752 max, 0.099 min

 

This is of course for very small objects (100 bytes) served out of RAM cache, with HTTP keep-alive. Still respectable, close to 154k QPS out of a vey low end, commodity box.

Hacking: 

Comments

Re: May 2011 Apache Traffic Server performance

Hmmm, I don't think I have it saved, but attached is the typical script I run to setup my records.config. I don't know if that's what I did for this benchmark though, but it was probably close:

use Apache::TS::Config::Records;
use File::Copy;

my $BASE = "/opt/ats";

my $recedit = new Apache::TS::Config::Records(file => "${BASE}/etc/trafficserver/records.config");

$recedit->set(conf => "proxy.config.exec_thread.autoconfig",  val => "0");
$recedit->set(conf => "proxy.config.exec_thread.limit",  val => "6");
$recedit->set(conf => "proxy.config.http.server_port",		val => "80");
$recedit->set(conf => "proxy.config.http.quick_filter.mask",  val => "0");
$recedit->set(conf => "proxy.config.http.cache.required_headers",  val => "1");
$recedit->set(conf => "proxy.config.cache.ram_cache.size",  val => "128M");
$recedit->set(conf => "proxy.config.log.logging_enabled",  val => "0");
$recedit->set(conf => "proxy.config.url_remap.remap_required",  val => "0");
$recedit->set(conf => "proxy.config.url_remap.pristine_host_hdr",  val => "0");
$recedit->set(conf => "proxy.config.ssl.enabled",  val => "1");
$recedit->set(conf => "proxy.config.ssl.number.threads",  val => "2");
$recedit->set(conf => "proxy.config.ssl.server.cert.filename",  val => "ts-test.pem");

$recedit->append(line => "");
$recedit->append(line => "# My local stuff");
$recedit->set(conf => "proxy.config.mlock_enabled", val => "2");

$recedit->write(file => "${BASE}/etc/trafficserver/records.config");