Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
The Node.js Scalability Myth
Felix Geisendörfer
March 16, 2012
Programming
16
17k
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
630
Programming flying robots with JavaScript
felixge
2
780
Programming flying robots with JavaScript
felixge
0
410
Programming an AR Drone Firmware with JS (de)
felixge
1
500
Faster than C?
felixge
1
1.1k
Flying robots over a 10.000 mile distance with JavaScript.
felixge
0
370
Faster than C?
felixge
1
440
The power of node.js (with quadcopters)
felixge
0
360
Faster than C?
felixge
0
300
Other Decks in Programming
See All in Programming
iOS 16からのロック画面Widget争奪戦に備える
tsuzuki817
0
200
模組化的Swift架構(二) DDD速成
haifengkao
0
380
GitHubのユーザー名を変更した後のあれこれ
tahia910
0
120
Android Compose Component - mapping.
taehwandev
0
120
Running Laravel/PHP on AWS (AWS Builders Day Taiwan 2022)
dwchiang
0
140
こそこそアジャイル導入しようぜ!
ichimichi
0
1.1k
Node.jsデザインパターンを読んで
mmmommm
0
2.5k
Airflowはすごいぞ!
hankehly
0
370
Terraform Plan/Apply結果の自動通知
ymmy02
0
280
チームでカレーを作ろう!アジャイルカレークッキング
akitotsukahara
0
780
Why Airflow? & What's new in Airflow 2.3?
kaxil
0
110
Cybozu GoogleI/O 2022 LT会 - Input for all screens
jaewgwon
0
290
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
319
19k
The Art of Programming - Codeland 2020
erikaheidi
32
10k
Side Projects
sachag
450
37k
Ruby is Unlike a Banana
tanoku
91
9.2k
Producing Creativity
orderedlist
PRO
333
37k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
655
120k
Raft: Consensus for Rubyists
vanstee
126
5.4k
Art Directing for the Web. Five minutes with CSS Template Areas
malarkey
196
9.4k
Creatively Recalculating Your Daily Design Routine
revolveconf
207
10k
How to Ace a Technical Interview
jacobian
265
21k
GraphQLの誤解/rethinking-graphql
sonatard
27
6.5k
Web development in the modern age
philhawksworth
197
9.3k
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