SlideShare une entreprise Scribd logo
1  sur  75
4 Node.js Gotchas:
What your ops team needs to know
khandaniel
@dkhan
Daniel Khan
Technical Product Manager
Confidential, Dynatrace, LLC
Confidential, Dynatrace, LLC
Confidential, Dynatrace, LLC
Node.js is
what the Company Outlaws
use to finally introduce change
Confidential, Dynatrace, LLC
Node.js is
what the Company Hipsters threw in
just to break everything
@dkhan
Don’t try to be funny!
What is Node.js really?
Confidential, Dynatrace, LLC
Confidential, Dynatrace, LLC
Node.js is a C++ program controlled by V8 JavaScript
1 - Memory Problems
process.memoryUsage()
{ rss: 4935680, heapTotal: 1826816, heapUsed: 650472 }
How to build
a Memory Leak
theThing
someMethod()
longStr
unused()
originalThing
Closure Context
Reference
Root
http://bit.ly/1PvijIy
var snap = profiler.takeSnapshot();
snap.serialize();
v8-profiler
D
e
l
t
a
2 - CPU Problems
The Node.js Event Loop!
Timers
IO Callbacks
IO Polling
Set Immediate
Close
Threads
0
2,000
4,000
6,000
8,000
10,000
12,000
14,000
16,000
0
10,000,000
20,000,000
30,000,000
40,000,000
50,000,000
60,000,000
70,000,000
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101103105107109
NODEJS_UV_LOOP_COUNT NODEJS_UV_LOOP_TOTAL_TIME
0
20,000
40,000
60,000
80,000
100,000
120,000
140,000
160,000
0
500,000
1,000,000
1,500,000
2,000,000
2,500,000
3,000,000
3,500,000
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101103105107109
NODEJS_UV_LOOP_LATENCY NODEJS_UV_WORK_PROCESSED_LATENCY
calculateFibonacci();
0.00
20,000,000.00
40,000,000.00
60,000,000.00
80,000,000.00
100,000,000.00
120,000,000.00
0.00
100.00
200.00
300.00
400.00
500.00
600.00
700.00
800.00
NODEJS_UV_LOOP_COUNT NODEJS_UV_LOOP_TOTAL_TIME
0.00
200,000,000.00
400,000,000.00
600,000,000.00
800,000,000.00
1,000,000,000.00
1,200,000,000.00
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
0.00
500,000.00
1,000,000.00
1,500,000.00
2,000,000.00
2,500,000.00
3,000,000.00
3,500,000.00
4,000,000.00
NODEJS_UV_WORK_PROCESSED_LATENCY NODEJS_UV_LOOP_LATENCY
Busy Processing Callback
http://bit.ly/1jQMbBR
profiler.startProfiling(id);
profiler.stopProfiling(id);
v8-profiler
NODE_ENV=production
NODE_ENV=developme
nt
Blog: http://bit.ly/1flz0Xm
NODE_ENV=development NODE_ENV=production
get(‘/routeA’, function(){})
get(‘/routeB’, function(){})
get(‘/routeC’, function(){})
get(‘/routeD’, function(){})
get(‘/routeE’, function(){})
get(‘/routeA’, function(){})
get(‘/routeX’, function(){})
get(‘/^(route|router)/(.+)’, function(){})
HTTP GET /routeX
get(‘/routeA’, function(){})
get(‘/routeX’, function(){})
O(n)
Finding the route
3 - Security
1980 20001995 2005 2010 2015
Stakeholders
4 - Backpressure
1000 RPS
Node.js
10 RPS
Ancient Legacy Backend
Timers
IO Callbacks
IO Polling
Set Immediate
Close
Threads
Busy with IO Tasks
0.00
2,000.00
4,000.00
6,000.00
8,000.00
10,000.00
12,000.00
14,000.00
0.00
10,000,000.00
20,000,000.00
30,000,000.00
40,000,000.00
50,000,000.00
60,000,000.00
70,000,000.00
80,000,000.00
90,000,000.00
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
NODEJS_UV_LOOP_COUNT NODEJS_UV_LOOP_TOTAL_TIME
0.00
5,000,000.00
10,000,000.00
15,000,000.00
20,000,000.00
25,000,000.00
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
0.00
100,000,000.00
200,000,000.00
300,000,000.00
400,000,000.00
500,000,000.00
600,000,000.00
700,000,000.00
800,000,000.00
900,000,000.00
1,000,000,000.00
NODEJS_UV_WORK_PROCESSED_LATENCY NODEJS_UV_LOOP_LATENCY
We need a Holistic View
Meet Application Performance Monitoring
Complete Transaction Coverage
Browser / Native Mobile Java/
.NET
Performance
Warehouse
PurePath
Collector
Dynatrace
Server
Dynatrace
Client
Sessions
Store
Exported
Session
Offline
Session
Analysis
Web Server/
PHP/ Node.js
C++, VB,
ADK
CICS
Mainframe
z/OS
MQ/ESB
Database
Thank you!
Free Trial: https://www.dynatrace.com/trial/
Confidential, Dynatrace, LLC
Participate in our Forum :
community.dynatrace.com
Like us on Facebook :
facebook.com/dynatrace
Follow us on LinkedIn :
linkedin.com/company/dynatrace
Follow us on Twitter :
twitter.com/dynatrace
Watch our Videos & Demos :
youtube.com/dynatrace
Read our Blog :
https://www.dynatrace.com/blog/
Connect with us!

Contenu connexe

Tendances

Chaos Engineering with Kubernetes - Berlin / Hamburg Chaos Engineering Meetup...
Chaos Engineering with Kubernetes - Berlin / Hamburg Chaos Engineering Meetup...Chaos Engineering with Kubernetes - Berlin / Hamburg Chaos Engineering Meetup...
Chaos Engineering with Kubernetes - Berlin / Hamburg Chaos Engineering Meetup...
Ana Medina
 

Tendances (20)

Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
 
DevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback LoopsDevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback Loops
 
Boston DevOps Days 2016: Implementing Metrics Driven DevOps - Why and How
Boston DevOps Days 2016: Implementing Metrics Driven DevOps - Why and HowBoston DevOps Days 2016: Implementing Metrics Driven DevOps - Why and How
Boston DevOps Days 2016: Implementing Metrics Driven DevOps - Why and How
 
DevOps Transformation at Dynatrace and with Dynatrace
DevOps Transformation at Dynatrace and with DynatraceDevOps Transformation at Dynatrace and with Dynatrace
DevOps Transformation at Dynatrace and with Dynatrace
 
Metrics-driven Continuous Delivery
Metrics-driven Continuous DeliveryMetrics-driven Continuous Delivery
Metrics-driven Continuous Delivery
 
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your PipelineMetrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
 
Taking the Best of Agile, DevOps and CI/CD into security
Taking the Best of Agile, DevOps and CI/CD into securityTaking the Best of Agile, DevOps and CI/CD into security
Taking the Best of Agile, DevOps and CI/CD into security
 
Web and App Performance: Top Problems to avoid to keep you out of the News
Web and App Performance: Top Problems to avoid to keep you out of the NewsWeb and App Performance: Top Problems to avoid to keep you out of the News
Web and App Performance: Top Problems to avoid to keep you out of the News
 
OWASP DefectDojo - Open Source Security Sanity
OWASP DefectDojo - Open Source Security SanityOWASP DefectDojo - Open Source Security Sanity
OWASP DefectDojo - Open Source Security Sanity
 
OOP 2016 - Building Software That Eats The World
OOP 2016 - Building Software That Eats The WorldOOP 2016 - Building Software That Eats The World
OOP 2016 - Building Software That Eats The World
 
Making Continuous Security a Reality with OWASP’s AppSec Pipeline - Matt Tesa...
Making Continuous Security a Reality with OWASP’s AppSec Pipeline - Matt Tesa...Making Continuous Security a Reality with OWASP’s AppSec Pipeline - Matt Tesa...
Making Continuous Security a Reality with OWASP’s AppSec Pipeline - Matt Tesa...
 
Metrics-Driven Devops: Delivering High Quality Software Faster!
Metrics-Driven Devops: Delivering High Quality Software Faster! Metrics-Driven Devops: Delivering High Quality Software Faster!
Metrics-Driven Devops: Delivering High Quality Software Faster!
 
Keptn: Unbreakable Continuous Delivery - Berlin CI/CD Meetup
Keptn: Unbreakable Continuous Delivery - Berlin CI/CD MeetupKeptn: Unbreakable Continuous Delivery - Berlin CI/CD Meetup
Keptn: Unbreakable Continuous Delivery - Berlin CI/CD Meetup
 
Chaos Engineering with Kubernetes - Berlin / Hamburg Chaos Engineering Meetup...
Chaos Engineering with Kubernetes - Berlin / Hamburg Chaos Engineering Meetup...Chaos Engineering with Kubernetes - Berlin / Hamburg Chaos Engineering Meetup...
Chaos Engineering with Kubernetes - Berlin / Hamburg Chaos Engineering Meetup...
 
Continuous delivery in Qbon
Continuous delivery  in QbonContinuous delivery  in Qbon
Continuous delivery in Qbon
 
Auto sre with keptn
Auto sre with keptnAuto sre with keptn
Auto sre with keptn
 
Managers, Future Proof Your Automation
Managers, Future Proof Your AutomationManagers, Future Proof Your Automation
Managers, Future Proof Your Automation
 
Building a Secure DevOps Pipeline - for your AppSec Program
Building a Secure DevOps Pipeline - for your AppSec Program   Building a Secure DevOps Pipeline - for your AppSec Program
Building a Secure DevOps Pipeline - for your AppSec Program
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
 
Monitoring the #DevOps way
Monitoring the #DevOps wayMonitoring the #DevOps way
Monitoring the #DevOps way
 

Similaire à 4 Node.js Gotchas: What your ops team needs to know

Back To The Future.Key 2
Back To The Future.Key 2Back To The Future.Key 2
Back To The Future.Key 2
gueste8cc560
 
Cristiano Betta (Betta Works) - Lightweight Libraries with Rollup, Riot and R...
Cristiano Betta (Betta Works) - Lightweight Libraries with Rollup, Riot and R...Cristiano Betta (Betta Works) - Lightweight Libraries with Rollup, Riot and R...
Cristiano Betta (Betta Works) - Lightweight Libraries with Rollup, Riot and R...
Techsylvania
 
Why Node.js
Why Node.jsWhy Node.js
Why Node.js
guileen
 

Similaire à 4 Node.js Gotchas: What your ops team needs to know (20)

Hunting Performance Problems in Node.js and beyond
Hunting Performance Problems in Node.js and beyondHunting Performance Problems in Node.js and beyond
Hunting Performance Problems in Node.js and beyond
 
Don't let just Node.js take the blame
Don't let just Node.js take the blameDon't let just Node.js take the blame
Don't let just Node.js take the blame
 
Welcome to Mordor - Daniel Kahn - Codemotion Amsterdam 2016
Welcome to Mordor - Daniel Kahn - Codemotion Amsterdam 2016Welcome to Mordor - Daniel Kahn - Codemotion Amsterdam 2016
Welcome to Mordor - Daniel Kahn - Codemotion Amsterdam 2016
 
Analyzing the Performance of Mobile Web
Analyzing the Performance of Mobile WebAnalyzing the Performance of Mobile Web
Analyzing the Performance of Mobile Web
 
(C)NodeJS
(C)NodeJS(C)NodeJS
(C)NodeJS
 
Varnish kann alles
Varnish kann allesVarnish kann alles
Varnish kann alles
 
node.js - Eventful JavaScript on the Server
node.js - Eventful JavaScript on the Servernode.js - Eventful JavaScript on the Server
node.js - Eventful JavaScript on the Server
 
Back To The Future.Key 2
Back To The Future.Key 2Back To The Future.Key 2
Back To The Future.Key 2
 
Real World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS ApplicationReal World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS Application
 
Node azure
Node azureNode azure
Node azure
 
Cristiano Betta (Betta Works) - Lightweight Libraries with Rollup, Riot and R...
Cristiano Betta (Betta Works) - Lightweight Libraries with Rollup, Riot and R...Cristiano Betta (Betta Works) - Lightweight Libraries with Rollup, Riot and R...
Cristiano Betta (Betta Works) - Lightweight Libraries with Rollup, Riot and R...
 
All aboard the NodeJS Express
All aboard the NodeJS ExpressAll aboard the NodeJS Express
All aboard the NodeJS Express
 
jRecruiter - The AJUG Job Posting Service
jRecruiter - The AJUG Job Posting ServicejRecruiter - The AJUG Job Posting Service
jRecruiter - The AJUG Job Posting Service
 
Modern UI Development With Node.js
Modern UI Development With Node.jsModern UI Development With Node.js
Modern UI Development With Node.js
 
[1C2]webrtc 개발, 현재와 미래
[1C2]webrtc 개발, 현재와 미래[1C2]webrtc 개발, 현재와 미래
[1C2]webrtc 개발, 현재와 미래
 
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
 
Real World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js ApplicationsReal World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js Applications
 
Why Nodejs Guilin Shanghai
Why Nodejs Guilin ShanghaiWhy Nodejs Guilin Shanghai
Why Nodejs Guilin Shanghai
 
Why Node.js
Why Node.jsWhy Node.js
Why Node.js
 
Back To The Future
Back To The FutureBack To The Future
Back To The Future
 

Plus de Dynatrace

Sentry: Baselining, cloud-scale monitoring and auto-remediation with app mon ...
Sentry: Baselining, cloud-scale monitoring and auto-remediation with app mon ...Sentry: Baselining, cloud-scale monitoring and auto-remediation with app mon ...
Sentry: Baselining, cloud-scale monitoring and auto-remediation with app mon ...
Dynatrace
 
SEI: Faster innovation and better performance for the innovative sei wealth p...
SEI: Faster innovation and better performance for the innovative sei wealth p...SEI: Faster innovation and better performance for the innovative sei wealth p...
SEI: Faster innovation and better performance for the innovative sei wealth p...
Dynatrace
 

Plus de Dynatrace (20)

Virgin Money: Virgin Money's quest for digital performance perfection
Virgin Money: Virgin Money's quest for digital performance perfectionVirgin Money: Virgin Money's quest for digital performance perfection
Virgin Money: Virgin Money's quest for digital performance perfection
 
Dynatrace: The untouchables - the Dynatrace offering here and now
Dynatrace: The untouchables - the Dynatrace offering here and nowDynatrace: The untouchables - the Dynatrace offering here and now
Dynatrace: The untouchables - the Dynatrace offering here and now
 
Starbucks: Building a new dev culture and freeing time for innovation: A Star...
Starbucks: Building a new dev culture and freeing time for innovation: A Star...Starbucks: Building a new dev culture and freeing time for innovation: A Star...
Starbucks: Building a new dev culture and freeing time for innovation: A Star...
 
SITA: How smart apps are making air travel easier, every step of the way
SITA: How smart apps are making air travel easier, every step of the waySITA: How smart apps are making air travel easier, every step of the way
SITA: How smart apps are making air travel easier, every step of the way
 
Red Hat: Self driving IT is here, and it's real
Red Hat: Self driving IT is here, and it's realRed Hat: Self driving IT is here, and it's real
Red Hat: Self driving IT is here, and it's real
 
Paypal, Barbri: Lost in the cloud? Top challenges facing CIOs in a cloud nati...
Paypal, Barbri: Lost in the cloud? Top challenges facing CIOs in a cloud nati...Paypal, Barbri: Lost in the cloud? Top challenges facing CIOs in a cloud nati...
Paypal, Barbri: Lost in the cloud? Top challenges facing CIOs in a cloud nati...
 
Pivotal: Join us for a fireside chat with CEO of Pivotal
Pivotal: Join us for a fireside chat with CEO of PivotalPivotal: Join us for a fireside chat with CEO of Pivotal
Pivotal: Join us for a fireside chat with CEO of Pivotal
 
Harrods: Re-inventing the luxury retail market
Harrods: Re-inventing the luxury retail marketHarrods: Re-inventing the luxury retail market
Harrods: Re-inventing the luxury retail market
 
Dynatrace: Meet our captain of product and all things awesome, Steve Tack
Dynatrace: Meet our captain of product and all things awesome, Steve TackDynatrace: Meet our captain of product and all things awesome, Steve Tack
Dynatrace: Meet our captain of product and all things awesome, Steve Tack
 
Dynatrace: Accelerate your cloud innovation Welcome to Perform 2018
Dynatrace: Accelerate your cloud innovation Welcome to Perform 2018Dynatrace: Accelerate your cloud innovation Welcome to Perform 2018
Dynatrace: Accelerate your cloud innovation Welcome to Perform 2018
 
Dynatrace: Going beyond APM and soaring to the future
Dynatrace: Going beyond APM and soaring to the futureDynatrace: Going beyond APM and soaring to the future
Dynatrace: Going beyond APM and soaring to the future
 
Dynatrace: Davis - Hololens - AI update - Cloud announcements - Self driving IT
Dynatrace: Davis - Hololens - AI update - Cloud announcements - Self driving ITDynatrace: Davis - Hololens - AI update - Cloud announcements - Self driving IT
Dynatrace: Davis - Hololens - AI update - Cloud announcements - Self driving IT
 
Altimeter Group: The new face of change
Altimeter Group: The new face of changeAltimeter Group: The new face of change
Altimeter Group: The new face of change
 
Alastair Humphreys: Life stories and inspiration from Alastair Humphreys
Alastair Humphreys: Life stories and inspiration from Alastair HumphreysAlastair Humphreys: Life stories and inspiration from Alastair Humphreys
Alastair Humphreys: Life stories and inspiration from Alastair Humphreys
 
AWS: Serverless Architecture - Beyond functions and into the future
AWS: Serverless Architecture - Beyond functions and into the future AWS: Serverless Architecture - Beyond functions and into the future
AWS: Serverless Architecture - Beyond functions and into the future
 
Zurich: Monitoring a sales force-based insurance application using dynatrace ...
Zurich: Monitoring a sales force-based insurance application using dynatrace ...Zurich: Monitoring a sales force-based insurance application using dynatrace ...
Zurich: Monitoring a sales force-based insurance application using dynatrace ...
 
Sentry: Baselining, cloud-scale monitoring and auto-remediation with app mon ...
Sentry: Baselining, cloud-scale monitoring and auto-remediation with app mon ...Sentry: Baselining, cloud-scale monitoring and auto-remediation with app mon ...
Sentry: Baselining, cloud-scale monitoring and auto-remediation with app mon ...
 
SEI: Faster innovation and better performance for the innovative sei wealth p...
SEI: Faster innovation and better performance for the innovative sei wealth p...SEI: Faster innovation and better performance for the innovative sei wealth p...
SEI: Faster innovation and better performance for the innovative sei wealth p...
 
SAP: How SAP fully automates the provisioning and operations of its dynatrace...
SAP: How SAP fully automates the provisioning and operations of its dynatrace...SAP: How SAP fully automates the provisioning and operations of its dynatrace...
SAP: How SAP fully automates the provisioning and operations of its dynatrace...
 
REI: Evolving performance engineering for the move to cloud, microservices, c...
REI: Evolving performance engineering for the move to cloud, microservices, c...REI: Evolving performance engineering for the move to cloud, microservices, c...
REI: Evolving performance engineering for the move to cloud, microservices, c...
 

Dernier

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
FIDO Alliance
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
UK Journal
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 

Dernier (20)

Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
 
Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4j
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 

4 Node.js Gotchas: What your ops team needs to know

Notes de l'éditeur

  1. Those are NOT startups. Those are big brands. This is unique.
  2. Server-side JavaScript Built on Google V8 Evented non-blocking IO 8.000 Lines of C/C++ Code, 2.000 Lines of JavaScript
  3. But I really like this definition.
  4. What V8 does: It translates JavaScript into machine code and runs it.
  5. And every running program is represented by Work done on the CPU Data Stoed im memory And here we already have our two problem classes.
  6. Let’s review the memory handling of Node.js It’s very common and quite like Java. RSS: Code and Stack where local variables are stored It contains the heap for where objects and closures – let’s say long living resources like objects or closures are stored
  7. And it’s actually very easy to query the memory usage of a given Node process.
  8. And this is what you get if you create a graph of a running Node application. As we already see the heapUsed graph looks funny. It somehow is very dynamic and seems to follow a pattern. Something seems to take care that memory is freed. And I have a real live example of how this works.
  9. The console spits this out
  10. And now that we have found our problem we can add this. And the weekend is saved.
  11. My script will look at the memory usage and it constantly grows it will create a snapshot.
  12. Event loop latency The latency of a timer task. The timer should be triggered in a set interval (e.g. 200ms). If it is however triggered in 250ms the latency is 50ms. Work processed latency The time that passes from adding an asynchronouswork item to the threadpool's work queue and a worker thread picking it up Event Loop Tick Frequency The number of event loop cycles during the observation interval. Event loop tick duration The time it takes the event loop to complete a loop cycle.
  13. the event loop is busy processing js callbacks (hence the increase in timer latency and the event loop tick frequency decrease and duration increase) user land code wird im event loop thread abgearbeitet - das heisst slow callbacks wirken sich auf die event loop zeit aus und die frequenz - darum entsteht eine latenz bei einem timer task wenn die event loop es nicht schafft den nächsten timer rechtzeitig zu feuern
  14. Again v8 profiler. Again a function already there in V8. This will give you this.
  15. So this netflix latency problem.
  16. the event loop is struggling with async work (e.g. fs.read) which basically means the threadpool is exhausted with long running/lot of async work (hence the increase in work item latency)
  17. the event loop is struggling with async work (e.g. fs.read) which basically means the threadpool is exhausted with long running/lot of async work (hence the increase in work item latency)
  18. Automatic Browser Injection for UEM Eliminate guesswork across the lifecycle No averages 100% all Transactions Low maintenance Private and Public cloud environments