¿ How much traffic can support a little vps node ?. node.js vs apache wordpress & prestashop benchmarking

I did a little speed test in my webfarm. I you are asking how may traffic can you attend with a little 512Mb RAM VPS from digitalocean, see the  following results based on ab tool.

Hardware:

Debian 7 VPS

512 Mb RAM

20 GB SSD

Prestashop test site: http://zapateria.dontexist.org .. an online ecommerce demo

Node test site: http://exchange.dontexist.org  ..  a project from myself :)

Test with 100 requests in total, 10 concurrency

Prestashop:

Requests per second: 25.99 [#/sec] (mean)
Time per request: 384.691 [ms] (mean)
Time per request: 38.469 [ms] (mean, across all concurrent requests)
Transfer rate: 9.47 [Kbytes/sec] received

WordPress:


Requests per second: 15.64 [#/sec] (mean)
Time per request: 639.337 [ms] (mean)
Time per request: 63.934 [ms] (mean, across all concurrent requests)
Transfer rate: 9.75 [Kbytes/sec] received

node.js with socket.io

Requests per second: 41.63 [#/sec] (mean)
Time per request: 240.236 [ms] (mean)
Time per request: 24.024 [ms] (mean, across all concurrent requests)
Transfer rate: 150.77 [Kbytes/sec] received

Test with 1000 requests in total, 100 concurrency

Prestashop:

requests per second: 45.60 [#/sec] (mean)
Time per request: 2193.147 [ms] (mean)
Time per request: 21.931 [ms] (mean, across all concurrent requests)
Transfer rate: 16.63 [Kbytes/sec] received

WordPress:

When apache had over 500 requests the supersvisor had to restart node.js twice.

It seems there it’s a lack of ram serving wordpress pages. Aquí un extracto del top.

DEBUG: Starting child process with ‘node server.js’
2014-03-28T13:41:11.548Z – info: Server starting

top – 13:41:34 up 4:34, 2 users, load average: 69.21, 23.41, 8.75
Tasks: 156 total, 3 running, 151 sleeping, 0 stopped, 2 zombie
%Cpu(s): 12.3 us, 62.4 sy, 0.0 ni, 0.0 id, 11.1 wa, 0.0 hi, 0.0 si, 14.3 st
KiB Mem: 508936 total, 504016 used, 4920 free, 124 buffers
KiB Swap: 0 total, 0 used, 0 free, 776 cached

Requests per second: 6.66 [#/sec] (mean)
Time per request: 15016.069 [ms] (mean)
Time per request: 150.161 [ms] (mean, across all concurrent requests)
Transfer rate: 3.63 [Kbytes/sec] received

node.js with socket.io:

Requests per second: 63.45 [#/sec] (mean)
Time per request: 1575.987 [ms] (mean)
Time per request: 15.760 [ms] (mean, across all concurrent requests)
Transfer rate: 229.80 [Kbytes/sec] received

Y desde luego no se aprecia un uso excesivo de RAM:

KiB Mem: 508936 total, 255440 used, 253496 free, 9208 buffers
KiB Swap: 0 total, 0 used, 0 free, 27152 cached

CONCLUSSION

Test from an ADSL standard connection in spain to a data center in Amsterdam.

speed winners:

1) node.js, low ram, many requests, good concurrency. All winner

2) prestashop, middle throughput

3) wordpress, the slowest, many ram

Benchmark apache / node

Benchmark apache / node

req/sec  = request per sec

tim/rec = time per request

tim/rec2 = time per request mean across all requests

tranfer = Kb transferred

article in progress..

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>