Suche senden
Hochladen
High Performance Erlang
•
6 gefällt mir
•
2,271 views
P
PerconaPerformance
Folgen
Technologie
News & Politik
Melden
Teilen
Melden
Teilen
1 von 46
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Erlang and Scalability
Erlang and Scalability
Jan Henry Nystrom
In-country Review: Underlying Mines and Added Value
In-country Review: Underlying Mines and Added Value
Alex Lik
Layout of sequences and linear processes 11 stages power point transformer te...
Layout of sequences and linear processes 11 stages power point transformer te...
SlideTeam.net
Agile tour 2011 ralph jocham
Agile tour 2011 ralph jocham
Agora Group
What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)
Pavlo Baron
20 reasons why we don't need architects (@pavlobaron)
20 reasons why we don't need architects (@pavlobaron)
Pavlo Baron
Clojure class
Clojure class
Aysylu Greenberg
Elixir talk
Elixir talk
Cory Gwin
Empfohlen
Erlang and Scalability
Erlang and Scalability
Jan Henry Nystrom
In-country Review: Underlying Mines and Added Value
In-country Review: Underlying Mines and Added Value
Alex Lik
Layout of sequences and linear processes 11 stages power point transformer te...
Layout of sequences and linear processes 11 stages power point transformer te...
SlideTeam.net
Agile tour 2011 ralph jocham
Agile tour 2011 ralph jocham
Agora Group
What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)
Pavlo Baron
20 reasons why we don't need architects (@pavlobaron)
20 reasons why we don't need architects (@pavlobaron)
Pavlo Baron
Clojure class
Clojure class
Aysylu Greenberg
Elixir talk
Elixir talk
Cory Gwin
Messaging With Erlang And Jabber
Messaging With Erlang And Jabber
l xf
Winning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test Cycle
Rusty Klophaus
Erlang - Because s**t Happens by Mahesh Paolini-Subramanya
Erlang - Because s**t Happens by Mahesh Paolini-Subramanya
Hakka Labs
Clojure made-simple - John Stevenson
Clojure made-simple - John Stevenson
JAX London
Clojure values
Clojure values
Christophe Grand
Clojure: Functional Concurrency for the JVM (presented at Open Source Bridge)
Clojure: Functional Concurrency for the JVM (presented at Open Source Bridge)
Howard Lewis Ship
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012
Eonblast
From Perl To Elixir
From Perl To Elixir
Ruben Amortegui
NDC London 2014: Erlang Patterns Matching Business Needs
NDC London 2014: Erlang Patterns Matching Business Needs
Torben Hoffmann
Introduction to Erlang for Python Programmers
Introduction to Erlang for Python Programmers
Python Ireland
Elixir for aspiring Erlang developers
Elixir for aspiring Erlang developers
Torben Dohrn
Clojure Intro
Clojure Intro
thnetos
Elixir Into Production
Elixir Into Production
Jamie Winsor
Clojure: Towards The Essence of Programming
Clojure: Towards The Essence of Programming
Howard Lewis Ship
Clojure, Plain and Simple
Clojure, Plain and Simple
Ben Mabey
Erlang - Because S**t Happens
Erlang - Because S**t Happens
Mahesh Paolini-Subramanya
Clojure for Data Science
Clojure for Data Science
Mike Anderson
Clojure for Java developers
Clojure for Java developers
John Stevenson
Functional programming in clojure
Functional programming in clojure
Juan-Manuel Gimeno
Erlang - Concurrent Language for Concurrent World
Erlang - Concurrent Language for Concurrent World
Zvi Avraham
Drizzles Approach To Improving Performance Of The Server
Drizzles Approach To Improving Performance Of The Server
PerconaPerformance
E M T Better Performance Monitoring
E M T Better Performance Monitoring
PerconaPerformance
Weitere ähnliche Inhalte
Andere mochten auch
Messaging With Erlang And Jabber
Messaging With Erlang And Jabber
l xf
Winning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test Cycle
Rusty Klophaus
Erlang - Because s**t Happens by Mahesh Paolini-Subramanya
Erlang - Because s**t Happens by Mahesh Paolini-Subramanya
Hakka Labs
Clojure made-simple - John Stevenson
Clojure made-simple - John Stevenson
JAX London
Clojure values
Clojure values
Christophe Grand
Clojure: Functional Concurrency for the JVM (presented at Open Source Bridge)
Clojure: Functional Concurrency for the JVM (presented at Open Source Bridge)
Howard Lewis Ship
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012
Eonblast
From Perl To Elixir
From Perl To Elixir
Ruben Amortegui
NDC London 2014: Erlang Patterns Matching Business Needs
NDC London 2014: Erlang Patterns Matching Business Needs
Torben Hoffmann
Introduction to Erlang for Python Programmers
Introduction to Erlang for Python Programmers
Python Ireland
Elixir for aspiring Erlang developers
Elixir for aspiring Erlang developers
Torben Dohrn
Clojure Intro
Clojure Intro
thnetos
Elixir Into Production
Elixir Into Production
Jamie Winsor
Clojure: Towards The Essence of Programming
Clojure: Towards The Essence of Programming
Howard Lewis Ship
Clojure, Plain and Simple
Clojure, Plain and Simple
Ben Mabey
Erlang - Because S**t Happens
Erlang - Because S**t Happens
Mahesh Paolini-Subramanya
Clojure for Data Science
Clojure for Data Science
Mike Anderson
Clojure for Java developers
Clojure for Java developers
John Stevenson
Functional programming in clojure
Functional programming in clojure
Juan-Manuel Gimeno
Erlang - Concurrent Language for Concurrent World
Erlang - Concurrent Language for Concurrent World
Zvi Avraham
Andere mochten auch
(20)
Messaging With Erlang And Jabber
Messaging With Erlang And Jabber
Winning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test Cycle
Erlang - Because s**t Happens by Mahesh Paolini-Subramanya
Erlang - Because s**t Happens by Mahesh Paolini-Subramanya
Clojure made-simple - John Stevenson
Clojure made-simple - John Stevenson
Clojure values
Clojure values
Clojure: Functional Concurrency for the JVM (presented at Open Source Bridge)
Clojure: Functional Concurrency for the JVM (presented at Open Source Bridge)
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012
From Perl To Elixir
From Perl To Elixir
NDC London 2014: Erlang Patterns Matching Business Needs
NDC London 2014: Erlang Patterns Matching Business Needs
Introduction to Erlang for Python Programmers
Introduction to Erlang for Python Programmers
Elixir for aspiring Erlang developers
Elixir for aspiring Erlang developers
Clojure Intro
Clojure Intro
Elixir Into Production
Elixir Into Production
Clojure: Towards The Essence of Programming
Clojure: Towards The Essence of Programming
Clojure, Plain and Simple
Clojure, Plain and Simple
Erlang - Because S**t Happens
Erlang - Because S**t Happens
Clojure for Data Science
Clojure for Data Science
Clojure for Java developers
Clojure for Java developers
Functional programming in clojure
Functional programming in clojure
Erlang - Concurrent Language for Concurrent World
Erlang - Concurrent Language for Concurrent World
Mehr von PerconaPerformance
Drizzles Approach To Improving Performance Of The Server
Drizzles Approach To Improving Performance Of The Server
PerconaPerformance
E M T Better Performance Monitoring
E M T Better Performance Monitoring
PerconaPerformance
Covering Indexes Ordersof Magnitude Improvements
Covering Indexes Ordersof Magnitude Improvements
PerconaPerformance
Automated Performance Testing With J Meter And Maven
Automated Performance Testing With J Meter And Maven
PerconaPerformance
Galera Multi Master Synchronous My S Q L Replication Clusters
Galera Multi Master Synchronous My S Q L Replication Clusters
PerconaPerformance
My S Q L Replication Getting The Most From Slaves
My S Q L Replication Getting The Most From Slaves
PerconaPerformance
Performance Instrumentation Beyond What You Do Now
Performance Instrumentation Beyond What You Do Now
PerconaPerformance
Boost Performance With My S Q L 51 Partitions
Boost Performance With My S Q L 51 Partitions
PerconaPerformance
Websites On Speed
Websites On Speed
PerconaPerformance
Trees And More With Postgre S Q L
Trees And More With Postgre S Q L
PerconaPerformance
Database Performance With Proxy Architectures
Database Performance With Proxy Architectures
PerconaPerformance
Using Storage Class Memory
Using Storage Class Memory
PerconaPerformance
Websites On Speed
Websites On Speed
PerconaPerformance
Running A Realtime Stats Service On My Sql
Running A Realtime Stats Service On My Sql
PerconaPerformance
How To Think About Performance
How To Think About Performance
PerconaPerformance
Object Oriented Css For High Performance Websites And Applications
Object Oriented Css For High Performance Websites And Applications
PerconaPerformance
Your Disk Array Is Slower Than It Should Be
Your Disk Array Is Slower Than It Should Be
PerconaPerformance
Mehr von PerconaPerformance
(17)
Drizzles Approach To Improving Performance Of The Server
Drizzles Approach To Improving Performance Of The Server
E M T Better Performance Monitoring
E M T Better Performance Monitoring
Covering Indexes Ordersof Magnitude Improvements
Covering Indexes Ordersof Magnitude Improvements
Automated Performance Testing With J Meter And Maven
Automated Performance Testing With J Meter And Maven
Galera Multi Master Synchronous My S Q L Replication Clusters
Galera Multi Master Synchronous My S Q L Replication Clusters
My S Q L Replication Getting The Most From Slaves
My S Q L Replication Getting The Most From Slaves
Performance Instrumentation Beyond What You Do Now
Performance Instrumentation Beyond What You Do Now
Boost Performance With My S Q L 51 Partitions
Boost Performance With My S Q L 51 Partitions
Websites On Speed
Websites On Speed
Trees And More With Postgre S Q L
Trees And More With Postgre S Q L
Database Performance With Proxy Architectures
Database Performance With Proxy Architectures
Using Storage Class Memory
Using Storage Class Memory
Websites On Speed
Websites On Speed
Running A Realtime Stats Service On My Sql
Running A Realtime Stats Service On My Sql
How To Think About Performance
How To Think About Performance
Object Oriented Css For High Performance Websites And Applications
Object Oriented Css For High Performance Websites And Applications
Your Disk Array Is Slower Than It Should Be
Your Disk Array Is Slower Than It Should Be
Kürzlich hochgeladen
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
MIND CTI
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Orbitshub
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
Architecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Jago de Vreede
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Deepika Singh
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
WSO2
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
apidays
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
sammart93
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Andrey Devyatkin
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
Zilliz
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
Sandro Moreira
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
Christopher Logan Kennedy
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Juan lago vázquez
Kürzlich hochgeladen
(20)
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Architecting Cloud Native Applications
Architecting Cloud Native Applications
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
High Performance Erlang
1.
Erlang and
Scalability Percona Performance 2009 Jan Henry Nystrom henry@erlang-consulting.com 2007 Course Introduction Course Title @ Course Author
2.
Introduction •
Scalability Killers • Design Decisions – Language and Yours • Thinking Scalable/Parallel • Code for the correct case • Rules of Thumb • Scalability in the small: SMP Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 2
3.
Scalability Killers • Synchronization •
Resource contention Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 3
4.
Scalability Killers • Synchronization Erlang
and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 3
5.
Design Decisions
No sharing • Processes • Encapsulation • No implicit synchronization Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 4
6.
Design Decisions
No implicit synchronization • Spawn always succeed • Sending always succeed • Random access message buffer • Fire and forget unless you need the synchronization Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 5
7.
Design Decisions Erlang and
Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 6
8.
Design Decisions
Concurrency oriented programming Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 6
9.
Design Decisions
Concurrency oriented programming • Concurrency support an integral part of the language Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 6
10.
Design Decisions
Concurrency oriented programming • Concurrency support an integral part of the language • Distribution support Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 6
11.
Design Decisions
Concurrency oriented programming • Concurrency support an integral part of the language • Distribution support • Sets the focus firmly on the concurrent tasks Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 6
12.
Design Decisions
Concurrency oriented programming • Concurrency support an integral part of the language • Distribution support • Sets the focus firmly on the concurrent tasks • Code for the correct case Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 6
13.
Design Decisions
Concurrency oriented programming • Concurrency support an integral part of the language • Distribution support • Sets the focus firmly on the concurrent tasks • Code for the correct case • Clear Code Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 6
14.
Design Decisions
Concurrency oriented programming • Concurrency support an integral part of the language • Distribution support • Sets the focus firmly on the concurrent tasks • Code for the correct case • Clear Code Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 6
15.
Design Decisions
Concurrency oriented programming • Concurrency support an integral part of the language • Distribution support • Sets the focus firmly on the concurrent tasks • Code for the correct case • Clear Code Clarity is King! Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 6
16.
Design Decisions
Concurrency oriented programming • Concurrency support an integral part of the language • Distribution support • Sets the focus firmly on the concurrent tasks • Code for the correct case • Clear Code Clarity is King! Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 6
17.
Design Decisions
Concurrency oriented programming • Concurrency support an integral part of the language • Distribution support • Sets the focus firmly on the concurrent tasks • Code for the correct case • Clear Code Clarity is King! I rather try to get clear code correct than correct code clear Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 6
18.
Thinking Scalable/Parallel
0 Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 7
19.
Thinking Scalable/Parallel
List length: Obviously Linear 4: But not when you have n processors? Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 7
20.
Thinking Scalable/Parallel List
length: O(logN) with sufficient processors Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 8
21.
Thinking Scalable/Parallel List
length: O(logN) with sufficient processors 4 2 2 1 1 1 1 Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 8
22.
Thinking Scalable/Parallel
In the Erlang setting • Do not introduce unneeded synchronization • Remember processes are cheap • Do not introduce unneeded synchronization • A terminated process is all garbage • Do not introduce unneeded synchronization Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 9
23.
Code for the
Correct Case Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 10
24.
Code for the
Correct Case request set timer request set timer request set timer Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 10
25.
Code for the
Correct Case request set timer request set timer request set timer r answe release timer check r answe release timer check er answ release timer check Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 10
26.
Code for the
Correct Case request set timer request set timer request set timer r answe release timer check r answe release timer check er answ release timer check Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 10
27.
Code for the
Correct Case Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 11
28.
Code for the
Correct Case request set timer request request Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 11
29.
Code for the
Correct Case request set timer request request nswer a Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 11
30.
Rules of Thumb •
Rule 1 - All independent tasks should be processes • Rule 2 - Do not invent concurrency that is not there! f() g() h() Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 12
31.
Rules of Thumb •
Rule 1 - All independent tasks should be processes • Rule 2 - Do not invent concurrency that is not there! f() g() h() Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 12
32.
Rules of Thumb •
Rule 1 - All independent tasks should be processes • Rule 2 - Do not invent concurrency that is not there! f() g() h(g(f())) h() Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 12
33.
Rules of Thumb •
Rule 1 - All independent tasks should be processes • Rule 2 - Do not invent concurrency that is not there! f() g() h(g(f())) h(g(f())) h(g(f())) h(g(f())) h() Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 12
34.
Scalability in the
small: SMP Erlang SMP ”Credo” SMP should be transparent to the programmer in much the same way as Erlang Distribution • You shouldn’t have to think about it ...but sometimes you must • Use SMP mainly for stuff that you’d make concurrent anyway • Erlang uses concurrency as a structuring principle • Model for the natural concurrency in your problem Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 13
35.
Scalability in the
small: SMP ”Big bang” benchmark on Sunfire T2000 • Erlang on multicore 1 scheduler • SMP prototype ‘97, First OTP release May ‘06. • Mid -06 benchmark mimicking call handling (axdmark) on the (experimental) SMP emulator. Observed speedup/core: 0.95 • First Ericsson product (TGC) released on SMP Erlang in Q207. 16 schedulers Simultaneous processes Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 14
36.
Scalability in the
small: SMP Case Study: Telephony Gateway Controller AXE TGC • Mediates between legacy telephony and multimedia networks. • Hugely complex state machines GW GW GW • + massive concurrency. • Developed in Erlang. • Multicore version shipped to customer Q207. • Porting from 1-core PPC to 2-core Intel took < 1 man-year (including testing). Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 15
37.
Scalability in the
small: SMP Case Study: Telephony Gateway Controller IS/GCP IS/GEP IS/GEP AXD AXD Traffic scenario CPB5 CPB6 1slot/board Dual core Dual core One core Two cores running running 2slots/board 2slots/board POTS-POTS / 4.3X call/sec X call/sec 2.3X call/sec 0.4X 2.1X call/sec AGW call/sec OTP R11_3 beta One core used +patches ISUP-ISUP /Inter 13X call/sec 3.6X call/sec 7.7X call/sec 1.55X 7.6X call/sec MGW call/sec OTP R11_3 beta One core used +patches ISUP-ISUP /Intra 5.5X call/sec 26X call/sec 3.17X 14X call/sec MGW call/sec Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 16
38.
Scalability in the
small: SMP Case Study: Telephony Gateway Controller IS/GCP IS/GEP IS/GEP AXD AXD Traffic scenario CPB5 CPB6 1slot/board Dual core Dual core One core Two cores running running 2slots/board 2slots/board POTS-POTS / 4.3X call/sec X call/sec 2.3X call/sec 0.4X 2.1X call/sec AGW call/sec OTP R11_3 beta One core used +patches ISUP-ISUP /Inter 13X call/sec 3.6X call/sec 7.7X call/sec 1.55X 7.6X call/sec MGW call/sec OTP R11_3 beta One core used +patches ISUP-ISUP /Intra 5.5X call/sec 26X call/sec 3.17X 14X call/sec MGW call/sec Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 16
39.
Scalability in the
small: SMP Speedup on 4 Hyper Threaded Pentium4 5.00 3.96 3.79 3.75 3.63 Speddup 3.11 2.73 2.50 2.05 1.92 1.25 1.00 0 1 2 3 4 5 6 7 8 # Schedulers • Chatty • 1000 processes created • Each process randomly sends req/recieves ack from all other processes Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 17
40.
Scalability in the
small: SMP Erlang VM non-SMP VM run queue Scheduler Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 18
41.
Scalability in the
small: SMP Erlang VM Current SMP VM run queue OTP R11/R12 Scheduler #1 Scheduler #2 Scheduler #N Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 19
42.
Scalability in the
small: SMP Erlang VM New SMP VM OTP R13 Scheduler #1 run queue Released 21th April migration Scheduler #2 run queue logic Scheduler #N run queue Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 20
43.
Scalability in the
small: SMP Multiple run queues Speedup: Ca 0.43 * N @ 32 cores Memory allocation locks dominate... Single run queue • Speedup of ”Big Bang” on a Tilera Tile64 chip (R13A) • 1000 processes, all talking to each other Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 21
44.
Scalability in the
small: SMP Shift in Bottlenecks • All scalable Erlang systems were stress tested for CPU usage for network usage • With SMP hardware we must stress test for memory usage • In the typical SMP system, the bottleneck has shifted from the CPU to the memory Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 22
45.
Scalability in the
small: SMP Death by a thousand cuts • Many requests that generate short spikes in memory usage • Limit or serialize those requests • More on this in coming paper from CTO Ulf Wiger loop(State) -> receive {request, typeA, Data} -> Data1 = allocate_lots_of_memory(Data), a_server ! {request, typeA, self()}, receive {answer, … Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 23
46.
Questions
??? Erlang and Scalability Percona Performance Conference © 2009 -2009, Erlang Training and Consulting 24
Jetzt herunterladen