Return to book
Review this book
About the author
Introduction
1.
How to Dive into a Code Base
1.1.
Raw Erlang
1.2.
OTP Applications
1.2.1.
Library Applications
1.2.2.
Regular Applications
1.2.3.
Dependencies
1.3.
OTP Releases
1.4.
Excerises
2.
Building Open Source Erlang Software
2.1.
Project Structure
2.1.1.
OTP Applications
2.1.2.
OTP Releases
2.2.
Supervisors and start_link Semantics
2.2.1.
It’s About the Guarantees
2.2.2.
Side Effects
2.2.3.
Example: Initializing without guaranteeing connections
2.2.4.
In a nutshell
2.2.5.
Application Strategies
2.3.
Exercises
3.
Planning for Overload
3.1.
Common Overload Sources
3.1.1.
error_logger Explodes
3.1.2.
Locks and Blocking Operations
3.1.3.
Unexpected Messages
3.2.
Restricting Input
3.2.1.
How Long Should a Time Out Be
3.2.2.
Asking For Permission
3.2.3.
What Users See
3.3.
Discarding Data
3.3.1.
Random Drop
3.3.2.
Queue Buffers
3.3.3.
Stack Buffers
3.3.4.
Time-Sensitive Buffers
3.3.5.
Dealing With Constant Overload
3.3.6.
How Do You Drop
3.4.
Exercises
4.
Connecting to Remote Nodes
4.1.
Job Control Mode
4.2.
Remsh
4.3.
SSH Daemon
4.4.
Named Pipes
4.5.
Exercises
5.
Runtime Metrics
5.1.
Global View
5.1.1.
Memory
5.1.2.
CPU
5.1.3.
Processes
5.1.4.
Port
5.2.
Digging In
5.2.1.
Process
5.2.2.
OTP Processes
5.2.3.
Ports
5.3.
Exercises
6.
Reading Crash Dumps
6.1.
General View
6.2.
Full Mailboxes
6.3.
Too Many (or to o few) Processes
6.4.
Too Many Ports
6.5.
Can’t Allocate Memory
6.6.
Exercises
7.
Memory Leaks
7.1.
Common Sources of Leaks
7.1.1.
Atom
7.1.2.
Binary
7.1.3.
Code
7.1.4.
ETS
7.1.5.
Processes
7.1.6.
Nothing in Particular
7.2.
Binaries
7.2.1.
Detecting Leaks
7.2.2.
Fixing Leaks
7.3.
Memory Fragmentation
7.3.1.
Finding Fragmentation
7.3.2.
Erlang's Memory Model
7.3.3.
Fixing Memory Fragmentation with a Different Allo cation Strategy
7.4.
Exercises
8.
CPU and Scheduler Hogs
8.1.
Profiling and Reduction Counts
8.2.
System Monitors
8.2.1.
Suspended Ports
8.3.
Exercises
9.
Tracing
9.1.
Tracing Principles
9.2.
Tracing with Recon
9.3.
Example Sessions
9.4.
Exercises
10.
Conclusion
Powered by
GitBook
A
A
Serif
Sans
White
Sepia
Night
Twitter
Google
Facebook
Weibo
Instapaper
Stuff Goes Bad:Erlang In Anger
Binary
See Section 7.2.
二进制
查看章节7.2