Skip to content

Instantly share code, notes, and snippets.

@danveloper
Last active April 14, 2016 08:45
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danveloper/db888be3519966976368 to your computer and use it in GitHub Desktop.
Save danveloper/db888be3519966976368 to your computer and use it in GitHub Desktop.
Ratpack 0.9.13 Performance on EC2 c4.8xlarge

starting the app

* app starts with `-Dratpack.epoll=true` to enable the Netty `EpollEventLoop`
# ./wrk -t72 -c3000 -d30s http://localhost:5050
Running 30s test @ http://localhost:5050
  72 threads and 3000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     4.82ms    9.03ms 229.22ms   95.25%
    Req/Sec     9.58k     3.52k   34.54k    70.33%
  19894701 requests in 29.85s, 2.13GB read
Requests/sec: 666536.89
Transfer/sec:     73.10MB

That's 666,537 requests per second!


Tunings

# cat /etc/security/limits.conf 

*         hard    nofile      500000
*         soft    nofile      500000
root      hard    nofile      500000
root      soft    nofile      500000
# cat /etc/sysctl.conf 
fs.file-max = 10000000
net.core.rmem_max = 134217728 
net.core.wmem_max = 134217728 
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.core.netdev_max_backlog = 250000
net.ipv4.tcp_congestion_control=htcp
net.ipv4.tcp_mtu_probing=1
net.ipv4.tcp_tw_recycle = 1 
net.ipv4.tcp_tw_reuse = 1  
net.core.somaxconn=10000
net.ipv4.tcp_max_syn_backlog=10000
# cat /proc/sys/fs/epoll/max_user_watches
25323970

Resources

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment