ShareLaTeX.com is written entirly in Node.js with everything run through HTTPS managed by Express. The load on the site is relatively small, however I was interested in the performance difference between HTTP and HTTPS so ran some Bliz.io benchmarks

I performed the benchmark a Linode 512 VPS I use for testing my code. The single endpoint hit just returned “hello”, so no rendering, I/O, or large files transfered. Node 0.6.12 was used along with express 2.5.8 and sessions turned on.

HTTPS

HTTP

As you can see the HTTPS server quickly crashed, with the average response time quickly rising and crashing at around 125 users. While HTTP remained solid responding in 30ms to 250 users per second.

This is not an in depth test but just a play, however the results are more extreme than I was expecting. Managing the HTTPS in a different layer is worth investigation, it is however not as simple as one would hope when you rely upon websockets like we do.

Posted by Henry Oswald on 14 Mar 2012