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
770
Programming flying robots with JavaScript
felixge
2
950
Programming flying robots with JavaScript
felixge
0
590
Programming an AR Drone Firmware with JS (de)
felixge
1
610
Faster than C?
felixge
1
1.2k
Flying robots over a 10.000 mile distance with JavaScript.
felixge
0
480
Faster than C?
felixge
1
630
The power of node.js (with quadcopters)
felixge
0
490
Faster than C?
felixge
0
410
Other Decks in Programming
See All in Programming
UPDATEがシステムを複雑にする? イミュータブルデータモデルのすすめ
shimomura
0
510
コード書くの好きな人向けAIコーディング活用tips #orestudy
77web
3
260
単体テストの始め方/作り方
toms74209200
0
370
ドメインモデリングにおける抽象の役割、tagless-finalによるDSL構築、そして型安全な最適化
knih
10
1.5k
生成AIで日々のエラー調査を進めたい
yuyaabo
0
350
Javaのルールをねじ曲げろ!禁断の操作とその代償から学ぶメタプログラミング入門 / A Guide to Metaprogramming: Lessons from Forbidden Techniques and Their Price
nrslib
3
1.9k
Julia という言語について (FP in Julia « SIDE: F ») for 関数型まつり2025
antimon2
3
700
プロダクト改善のために新しいことを始める -useContextからの卒業、Zustandへ-
rebase_engineering
1
110
從零到一:搭建你的第一個 Observability 平台
blueswen
0
330
Development of an App for Intuitive AI Learning - Blockly Summit 2025
teba_eleven
0
100
Agent Rules as Domain Parser
yodakeisuke
1
470
ワンバイナリWebサービスのススメ
mackee
10
7.6k
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.5k
Into the Great Unknown - MozCon
thekraken
39
1.8k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Designing for humans not robots
tammielis
253
25k
Fireside Chat
paigeccino
37
3.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
770
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Faster Mobile Websites
deanohume
307
31k
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