fantastic stories about
performance requirements
Ludicrous Speed
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
PANIC!
Slide 8
Slide 8 text
Modern human
experimentations
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
Big business impact
Big response delay
Slide 12
Slide 12 text
No silver bullets today
Slide 13
Slide 13 text
Perception of time
What happens on internets?
What is “OK” response time?
What is “OK” load?
Summary
PLAN
Slide 14
Slide 14 text
Perception of time
What happens on internets?
What is “OK” response time?
What is “OK” load?
Summary
PLAN
Slide 15
Slide 15 text
Perception of time
What happens on internets?
What is “OK” response time?
What is “OK” load?
Summary
PLAN
Slide 16
Slide 16 text
Perception of time
What happens on internets?
What is “OK” response time?
What is “OK” load?
Summary
PLAN
Slide 17
Slide 17 text
Perception of time
What happens on internets?
What is “OK” response time?
What is “OK” load?
Summary
PLAN
Slide 18
Slide 18 text
Perception
Of
Time
Slide 19
Slide 19 text
100-200 ms
500-1000 ms
2-5 seconds
7-10 seconds
instantaneous reaction
uninterrupted reaction
some reaction
oof…
Slide 20
Slide 20 text
100-200 ms
500-1000 ms
2-5 seconds
7-10 seconds
instantaneous reaction
uninterrupted reaction
some reaction
oof…
Slide 21
Slide 21 text
100-200 ms
500-1000 ms
2-5 seconds
7-10 seconds
instantaneous reaction
uninterrupted reaction
some reaction
oof…
Slide 22
Slide 22 text
100-200 ms
500-1000 ms
2-5 seconds
7-10 seconds
instantaneous reaction
uninterrupted reaction
some reaction
oof…
Slide 23
Slide 23 text
100-200 ms
500-1000 ms
2-5 seconds
7-10 seconds
instantaneous reaction
uninterrupted reaction
some reaction
oof…
*20 years old data
Slide 24
Slide 24 text
Modern data?
Slide 25
Slide 25 text
3… may be 5 seconds max
Slide 26
Slide 26 text
3… may be 5 seconds max
Even faster in future
Slide 27
Slide 27 text
Weber–Fechner law
1 2
Slide 28
Slide 28 text
Weber–Fechner law
1 2
Slide 29
Slide 29 text
Weber–Fechner law
1 2
Slide 30
Slide 30 text
Weber–Fechner law
1 2
Slide 31
Slide 31 text
Weber–Fechner law
1 2
just noticeable difference (jnd)
Slide 32
Slide 32 text
Weber–Fechner law
just noticeable difference (jnd)
For time lengths of up to 30s - jnd is
somewhere between 7% and 18%
Slide 33
Slide 33 text
Weber–Fechner law
Faster Slower
Slide 34
Slide 34 text
Weber–Fechner law
20s
Faster Slower
Slide 35
Slide 35 text
Weber–Fechner law
20s 24s
16s
-20% +20%
Faster Slower
Slide 36
Slide 36 text
“Slightly” faster
Slide 37
Slide 37 text
Perception of average between
t1 and t2 is:
sqrt(t1*t2)
Slide 38
Slide 38 text
Example
Slide 39
Slide 39 text
Benchmark against 30s
60s
less than 36s
less than 42s
less than 24s
slow
same
slightly slower
faster
Slide 40
Slide 40 text
Benchmark against 30s
60s
less than 36s
less than 42s
less than 24s
slow
same
slightly slower
faster
Slide 41
Slide 41 text
Benchmark against 30s
60s
less than 36s
less than 42s
less than 24s
slow
same
slightly slower
faster
Slide 42
Slide 42 text
Benchmark against 30s
60s
less than 36s
less than 42s
less than 24s
slow
same
slightly slower
definitely faster
Slide 43
Slide 43 text
Is it worth to optimise?
Target performance
Unnoticeable degradation
Slide 44
Slide 44 text
Is it worth to optimise?
Target performance
Unnoticeable degradation
Slide 45
Slide 45 text
Is it worth to optimise?
Target performance
Unnoticeable degradation
Slide 46
Slide 46 text
Why so serious?
Slide 47
Slide 47 text
Why so serious?
Slide 48
Slide 48 text
What
Happens on
Internets?
Slide 49
Slide 49 text
No content
Slide 50
Slide 50 text
No content
Slide 51
Slide 51 text
Response time:
DNS request
Establish TCP connection
Generate request to server
Send request to server
Server generates response
Server sends response
Page rendering on browser
Slide 52
Slide 52 text
Response time:
DNS request
Establish TCP connection
Generate request to server
Send request to server
Server generates response
Server sends response
Page rendering on browser
Slide 53
Slide 53 text
Response time:
DNS request
Establish TCP connection
Generate request to server
Send request to server
Server generates response
Server sends response
Page rendering on browser
Slide 54
Slide 54 text
Response time:
DNS request
Establish TCP connection
Generate request to server
Send request to server
Server generates response
Server sends response
Page rendering on browser
Slide 55
Slide 55 text
Response time:
DNS request
Establish TCP connection
Generate request to server
Send request to server
Server generates response
Server sends response
Page rendering on browser
Slide 56
Slide 56 text
Response time:
DNS request
Establish TCP connection
Generate request to server
Send request to server
Server generates response
Server sends response
Page rendering on browser
Slide 57
Slide 57 text
Response time:
DNS request
Establish TCP connection
Generate request to server
Send request to server
Server generates response
Server sends response
Page rendering in a browser
Slide 58
Slide 58 text
Response time:
DNS request
Establish TCP connection
Generate request to server
Send request to server
Server generates response
Server sends response
Page rendering in a browser
Slide 59
Slide 59 text
Fun facts!
Min time to pass 1/2 of globe:
67ms
Slide 60
Slide 60 text
Later ;)
Server generates response
Slide 61
Slide 61 text
Let’s talk a bit about that
Page rendering in a browser
Slide 62
Slide 62 text
In a complex projects 60% of time
could be easily spent on rendering
Slide 63
Slide 63 text
There’s space to optimise
Slide 64
Slide 64 text
There’s space to optimise
Slide 65
Slide 65 text
There’s space to optimise
Slide 66
Slide 66 text
Time budget:
Load and render critical parts first
Slide 67
Slide 67 text
What
Is “OK”
Response?
Slide 68
Slide 68 text
It depends
Slide 69
Slide 69 text
In general case
response longer than 300ms
means nobody cares
Slide 70
Slide 70 text
In general case
response longer than 300ms
means nobody cares
Usually it’s more than 1 second on a client
Slide 71
Slide 71 text
It should be fast
Slide 72
Slide 72 text
It should be fast
Bad requirement
Slide 73
Slide 73 text
It should be faster than 300ms
Slide 74
Slide 74 text
It should be faster than 300ms
Bad requirement
Slide 75
Slide 75 text
Long tail
Slide 76
Slide 76 text
95% < 300ms
99% < 500ms
Slide 77
Slide 77 text
95% < 300ms
99% < 500ms
Slide 78
Slide 78 text
95% < 300ms
99% < 500ms
OK requirement
Slide 79
Slide 79 text
95% < 300ms
99% < 500ms
OK requirement
But still depends
Slide 80
Slide 80 text
Remember about 20% difference!
Slide 81
Slide 81 text
Remember to measure competitors!
Slide 82
Slide 82 text
Oof… Done with time!
Slide 83
Slide 83 text
Oof… Done with time!
There are 1 more to go
Slide 84
Slide 84 text
What
Is “OK”
Load?
Slide 85
Slide 85 text
What measurement units to use?
Slide 86
Slide 86 text
What is “average user”?
Slide 87
Slide 87 text
“Average human” have less than 1 arm
Slide 88
Slide 88 text
Requests Per Second (RPS)
is what server understands
Slide 89
Slide 89 text
How much RPS
we should be able to handle?
Slide 90
Slide 90 text
EXTREMELY
HARD QUESTION
Slide 91
Slide 91 text
Pulse of the Web
Slide 92
Slide 92 text
Spotify
Average Monday in Stockholm
Slide 93
Slide 93 text
Spotify
Specific Monday in Stockholm
Slide 94
Slide 94 text
No content
Slide 95
Slide 95 text
No content
Slide 96
Slide 96 text
No content
Slide 97
Slide 97 text
No content
Slide 98
Slide 98 text
Spotify
Average Monday in Eastern US
Slide 99
Slide 99 text
Financial Times weekly traffic changes
Slide 100
Slide 100 text
Financial Times weekly traffic changes
Extremely different for different clients
Slide 101
Slide 101 text
Financial Times weekly traffic changes
Extreme daily features
Slide 102
Slide 102 text
Thanksgiving in US
Events could make a big difference
Slide 103
Slide 103 text
Bombing in Moscow subway 29 march 2010
Slide 104
Slide 104 text
Bombing in Moscow subway 29 march 2010
First explosion 7:57
Load growth 8:10
Slide 105
Slide 105 text
Think like a user
Look for daily/weakly/yearly cycles
Slide 106
Slide 106 text
Think like a user
Look for daily/weakly/yearly cycles
Slide 107
Slide 107 text
Event based service?
Prepare for extremely huge spikes
Slide 108
Slide 108 text
Do closed beta
And watch for load profile
Slide 109
Slide 109 text
It’s growing
Slide 110
Slide 110 text
Very
Short
Summary
Slide 111
Slide 111 text
Find out what is OK response time for you
Remember about long tail
Find out possible max load
Test your assumptions
Slide 112
Slide 112 text
Find out what is OK response time for you
Remember about long tail
Find out possible max load
Test your assumptions
Slide 113
Slide 113 text
Find out what is OK response time for you
Remember about long tail
Find out possible max load
Test your assumptions
Slide 114
Slide 114 text
Find out what is OK response time for you
Remember about long tail
Find out possible max load
Test your assumptions
Slide 115
Slide 115 text
APPLAUSE
Slide 116
Slide 116 text
QUESTIONS?
Slide 117
Slide 117 text
Magic
Numbers
Some
Slide 118
Slide 118 text
4 datacenters
More than 5K servers
~50 millions of unique users
More than 100 people working on backend
infrastructure and operations