Rick

Rick
Rick

Friday, May 16, 2014

notes on techempower client / server setting



For example, in the recent past I used autobench/httperf and remember setting the tcp_tw_recycle to true, but I was pounding from many servers and trying to get 100K to 200K clients per second.
I was wondering if there is a setup guide that I a missing.
Are there any special setting?
# Connection timeout                                                                                                                
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_tw_recycle = 1
#net.ipv4.ip_local_port_range=    # default was 30k ephemeral ports
There was no package manager. I notice you used Ubuntu after I installed centOS. CentOS is my knee jerk when I am not sure of the OS.

I did not find a package for wrk so I built it. Do you publish the version of wrk that you use?

Building wrk on centos

$ sudo  yum groupinstall 'Development Tools'
$ sudo yum install  openssl-devel
$ git clone https://github.com/wg/wrk.git
$ cd wrk
$ make
Is there a location of the benchmark run script? A wiki page... Bread crumbs?

Running wrk

./wrk -c 100 -d 30s http://192.168.50.90:8080/json
What is the right way?
Is it all in git?

Are there any special server setting?

sudo sysctl -w net.core.somaxconn=10000
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=10000
Vertx recommends the above, do you have a guide on how you setup the boxes?


No package yet. You may need to upgrade and update.
wrk needs openssl dev package and gcc/dev stack.
What follows is brief instructions on how to install wrk on Linux.

Ubuntu/Debian (clean box)

sudo apt-get install build-essential
sudo apt-get install libssl-dev
sudo apt-get install git
git clone https://github.com/wg/wrk.git
cd wrk
make
Installs the build tools, open ssl dev libs (including headers), and git. Then uses git to download wrk and build.

CentOS / RedHat / Fedora

sudo  yum groupinstall 'Development Tools'
sudo yum install  openssl-devel
sudo yum install  git
git clone https://github.com/wg/wrk.git
cd wrk
make
Installs the build tools, open ssl dev libs (including headers), and git. Then uses git to download wrk and build.


rick@firefly:~/wrk$ ./wrk -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive'  -c 200 -d 30s -t 2 -s pipeline-json.lua http://192.168.2.2:8080
Running 30s test @ http://192.168.2.2:8080
  2 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     5.17ms    6.54ms  96.83ms   88.69%
    Req/Sec   591.42k   162.19k    1.13M    63.74%
  34215750 requests in 30.00s, 4.84GB read
Requests/sec: 1140534.77
Transfer/sec:    165.33MB

591K

rick@firefly:~/wrk$ ./wrk -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive'  -c 200 -d 30s -t 2 -s pipeline.lua http://192.168.2.2:8080
Running 30s test @ http://192.168.2.2:8080
  2 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     4.53ms    5.80ms 106.19ms   89.31%
    Req/Sec   677.06k   173.23k    1.22M    62.24%
  39016230 requests in 30.00s, 4.80GB read
Requests/sec: 1300551.32
Transfer/sec:    163.72MB

677k


Results for vertx.

Kafka and Cassandra support, training for AWS EC2 Cassandra 3.0 Training