Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The Node.js Scalability Myth
Search
Felix Geisendörfer
March 16, 2012
Programming
16
18k
The Node.js Scalability Myth
Presentation given at the BerlinJS user group on March 15, 2012.
Felix Geisendörfer
March 16, 2012
Tweet
Share
More Decks by Felix Geisendörfer
See All by Felix Geisendörfer
tus.io - Resumable File Uploads (Lightning Talk)
felixge
2
760
Programming flying robots with JavaScript
felixge
2
940
Programming flying robots with JavaScript
felixge
0
580
Programming an AR Drone Firmware with JS (de)
felixge
1
600
Faster than C?
felixge
1
1.2k
Flying robots over a 10.000 mile distance with JavaScript.
felixge
0
470
Faster than C?
felixge
1
620
The power of node.js (with quadcopters)
felixge
0
480
Faster than C?
felixge
0
400
Other Decks in Programming
See All in Programming
プロダクト横断分析に役立つ、事前集計しないサマリーテーブル設計
hanon52_
2
380
英語 × の私が、生成AIの力を借りて、OSSに初コントリビュートした話
personabb
0
180
国漢文混用体からHolloまで
minhee
1
170
「影響が少ない」を自分の目でみてみる
o0h
PRO
2
970
Coding Experience Cpp vs Csharp - meetup app osaka@9
harukasao
0
730
Boost Your Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
1.2k
小田原でみんなで一句詠みたいな #phpcon_odawara
stefafafan
0
320
Being an ethical software engineer
xgouchet
PRO
0
210
Bedrock×MCPで社内ブログ執筆文化を育てたい!
har1101
6
890
S3静的ホスティング+Next.js静的エクスポート で格安webアプリ構築
iharuoru
0
220
いまさら聞けない生成AI入門: 「生成AIを高速キャッチアップ」
soh9834
15
4.5k
Memory API : Patterns, Performance et Cas d'Utilisation
josepaumard
0
100
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
5
520
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
13
1.4k
Being A Developer After 40
akosma
91
590k
Building Adaptive Systems
keathley
41
2.5k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.5k
Optimizing for Happiness
mojombo
377
70k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Designing for humans not robots
tammielis
252
25k
Transcript
The Node.js Scalability Myth Felix Geisendörfer 15.03.2012 at BerlinJS user
group
(@)felixge(.de)
transloadit.com (using node since v0.0.6)
core contributor
I need to build an über-scalable web service. It will
be the next big thing!
Easy! I will use node.js and MongoDB!
Easy! I will use node.js and MongoDB!
Because node.js is “scalable”, right?
None
Audience?
Backend Developers?
Are you measuring app performance in production?
1000 req / s
100 req / s
10 req / s
10 requests / per second = 864000 requests / day
10 req / s
Scalability
None
The Node.js Scalability Myth • Threads don’t scale • Event
loops do
The Node.js Scalability Myth • Threads don’t scale • Event
loops do (Probably) not true in 2012 (Very likely) not relevant
More relevant • Understanding scalability • Using the right tool
for the job
Vertical Scalability
Adding more resources to a single node
None
Vertical Scalability • CPU • GPUs • Memory • Disk
• Network
CPU
Computers of the future will have hundreds of cores!
CPU • Node is single threaded (runs on a single
CPU) • Using multiple CPUs requires multiple node processes (usually via prefork) • No shared memory
CPU (v8) • V8 compiles JS to Assembly • Just-in-time
compilation (JIT) • Does reasonably well in those language “benchmarks”
GPUs
GPUs • No support in node itself • node-cuda addon
by Kashif Rasul
Memory
Memory • No hard memory limit on 64 bit (since
node-0.6 / v8-3.6.5) • JS is a garbage collected language (avoid huge heaps) • Buffers do not count towards heap
Network
Network • Node’s network stack is a thin layer on
top of underlaying system calls • Good at fully saturating network interfaces
Disk
Disk • Done in thread pool • Unfortunately along with
DNS at this point • Throughput ok, but not ideal yet
Horizontal Scalability
Adding more nodes to a system
Horizontal Scalability • Node has no horizontal scaling specific features,
but ... • Fast networking & JSON / Buffers -> DIY
Horizontal Scalability • Simple stack (requires only build tools, python)
• Deployable without container server • Good package management via npm
Horizontal Solution “I have the full solution ...”
Horizontal Solution “... but unfortunately it did not fit on
this slide”
tl;dr • Know your requirements • There are no silver
bullets
Questions? Slides will be available at felixge.de
Thanks