Enviar búsqueda
Cargar
High Performance Erlang
•
6 recomendaciones
•
2,271 vistas
P
PerconaPerformance
Seguir
Tecnología
Noticias y política
Denunciar
Compartir
Denunciar
Compartir
1 de 46
Descargar ahora
Descargar para leer sin conexión
Recomendados
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
Recomendados
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
Más contenido relacionado
Destacado
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
Destacado
(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
Más de 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
Más de 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
Último
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Mark Simos
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
Fwdays
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Lorenzo Miniero
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Sergiu Bodiu
Training state-of-the-art general text embedding
Training state-of-the-art general text embedding
Zilliz
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
hariprasad279825
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
MounikaPolabathina
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
Dilum Bandara
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Hervé Boutemy
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
Nathaniel Shimoni
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
mohitsingh558521
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
BookNet Canada
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
Nicole Novielli
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
LoriGlavin3
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
Rick Flair
How to write a Business Continuity Plan
How to write a Business Continuity Plan
Databarracks
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
DianaGray10
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
HarshalMandlekar2
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
Último
(20)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Training state-of-the-art general text embedding
Training state-of-the-art general text embedding
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
How to write a Business Continuity Plan
How to write a Business Continuity Plan
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
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
Descargar ahora