Feedback

Benchmarking G-WAN

There is no shame in being wrong, only in failing to correct our mistakes. George Soros

Benchmarking G-WAN with 15 programming languages

By mixing optimized a Web server, an app. server and a cache server, G-WAN allows Python to be flying near 800,000 requests per second (on a 6-Core, see below), just like Javascript or Ruby.

This level of performance is even higher than the one of other servers merely serving static contents.

Google serves 54,595 searches per second worldwide (that's 3 millions per minute). And more than 200 millions of emails (65% of it being SPAM) are sent per minute on the Internet.

This is because G-WAN's multi-threaded architecture (and optimized implementation) perform and scale much better:

This test (see the open-sourced tool and documentation) was done on localhost to remove the 1GbE LAN network bottleneck.

What is shown here is an "hello world" script written in each language and executed on-the-fly by G-WAN on a 6-Core CPU by 6 server threads and requested by 6 weighttp threads.

G-WAN's lowest, PHP flies at a whooping 630,000 requests per second, leaving the best PHP frameworks way behind.

ANSI C and C++ achieve this performance without caching. Some others require caching to fly that hight. G-WAN caching is disabled by default, but you can enable it globally or on a per request basis. But due to its architecture and implementation, even without caching G-WAN provides better performance for a lower RAM and CPU resource consumption than other servers.

G-WAN serves many more requests in much less time and with less CPU and RAM than anyone else:

 [1-1000 range] 100.html (100-byte static file, HTTP keep-alives)
 
G-WAN server  Average RPS:826,821 Time:1,516 seconds[00:25:16]
 Lighty server  Average RPS:219,562   Time: 4,740 seconds [01:19:00]
 Nginx server   Average RPS:167,977   Time: 6,823 seconds [01:53:43] 
 Varnish cache  Average RPS:103,996   Time:10,817 seconds [03:00:17]

 [1-1000 range] hello world (dynamic contents, HTTP keep-alives)
 
G-WAN + C     Average RPS:801,585 Time:1,551 seconds[00:25:51]
G-WAN + Java  Average RPS:759,726   Time: 1,648 seconds [00:27:28]
G-WAN + Scala Average RPS:757,767   Time: 1,660 seconds [00:27:40]
G-WAN + JS    Average RPS:768,659   Time: 1,696 seconds [00:28:16]
G-WAN + Go    Average RPS:784,113   Time: 1,892 seconds [00:31:32]
G-WAN + Lua   Average RPS:757,588   Time: 1,920 seconds [00:32:00]
G-WAN + Perl  Average RPS:782,088   Time: 1,977 seconds [00:32:57]
G-WAN + Ruby  Average RPS:778,087   Time: 2,054 seconds [00:34:14]
G-WAN + PythonAverage RPS:774,180   Time: 2,110 seconds [00:35:10]
G-WAN + PHP   Average RPS:613,389   Time: 2,212 seconds [00:36:52]

 Tomcat         Average RPS: 76,556   Time:20,312 seconds [05:38:32]
 Node.js        Average RPS: 14,209   Time:80,102 seconds [22:15:02]
 Google Go      Average RPS: 12,801   Time:84,811 seconds [23:33:31]

And this is for a mere 6-Core CPU. The gap with other servers will be with 10x larger with (same power) 64-Core CPUs because G-WAN lets people harness the parallel processing power of the ever increasing number of cores available on each chip.

There's no wonder why researchers aim to tackle the Parallel Programming challenge considered by the European Union, Intel and Microsoft as the single most important problem facing the global IT industry.

G-WAN was was first released for Microsoft Windows in 2009. Less than six months later, Linux proved to be a better choice (less usermode overhead, more scalability, less security issues, and... free licenses).