system thinking
http://www.flickr.com/photos/irisheyes/148134965/sizes/o/in/photostream/
Slide 14
Slide 14 text
mathematics is
for everyone
Slide 15
Slide 15 text
request per second
vs
seconds per request
Slide 16
Slide 16 text
MTTR
Mean Time To
Recovery
vs
MTBF
Mean Time Between
Failure
Slide 17
Slide 17 text
do you monitor live
system
performance?
Slide 18
Slide 18 text
live monitoring tools
Munin
Cacti
Slide 19
Slide 19 text
drupal accesslog table
has tons of useful data
Slide 20
Slide 20 text
beware the logs
logstash / graylog
aggregate them
Slide 21
Slide 21 text
economics
costs per
request/volume/peek
operational costs
Return On Investment
Slide 22
Slide 22 text
we're talking about $peed
$peed = cost_effective_performance
Slide 23
Slide 23 text
slowness
downtime
operations
costs you money
Slide 24
Slide 24 text
it's not the
tools you have
it's the use you
make of them
Slide 25
Slide 25 text
have you benchmarked
your Drupal?
Slide 26
Slide 26 text
complex is easy and fragile
simple is hard and resilient
Keep It Simple Stupid
Slide 27
Slide 27 text
Know your stack
Know your targets
Monitor your performance
Slide 28
Slide 28 text
find where the problems are
don't fix things that aren't broken
the worse the first
one change a time
&
keep a log of your actions
Slide 29
Slide 29 text
dissecting
frontend vs backend
backend
static vs dynamic
dynamic
processing vs data gather
Slide 30
Slide 30 text
beyond development &
operations
good developers are those that take
all aspects in consideration
Slide 31
Slide 31 text
keep everything as close as
possible to production
test systems
Slide 32
Slide 32 text
take advantage of
configuration management
to reproduce your live
infrastructure
test systems
Slide 33
Slide 33 text
some software has its
performance directly
tied to the number of cores
and/or
the amount of RAM
test systems
Slide 34
Slide 34 text
sacred cow of frontend
CDN (expiration logic)
cloud servers
Slide 35
Slide 35 text
number of req. / parallelization
blocking events
data side: DNS resolution
data side: download time
data side: size / weight
order matters
frontend vs backend
Slide 36
Slide 36 text
frontend vs backend tools
Firebug
Chrome tools
Google Speed Tracer
Yslow
Web services [*] [*] [*] [*]
Slide 37
Slide 37 text
sacred cow of backend
load balancing: how? failover strategy?
more webheads: cache consistency?
another server: what for?
Slide 38
Slide 38 text
anonymous vs registered
cacheable vs non cacheable
backend: static vs dynamic
Slide 39
Slide 39 text
ab
Jmeter
Httperf
wrk
Gatling
TCP copy
HTTP benchmarking tools
sacred cow of PHP
APC Tuning
profile, profile, profile and profile
upgrading PHP version (if you're brave)
Slide 42
Slide 42 text
locks
difficult to dissect
devel
dynamic
processing vs data gather
Slide 43
Slide 43 text
benchmarking / profiling PHP
Xdebug
Webgrind
Xhprof
don't even try without an
opcode cache
& remember the hard disk
Slide 44
Slide 44 text
sacred cow of databases
NoSQL
denormalization
sharding
http://www.flickr.com/photos/rebeccaselah/3942904359/sizes/l/in/photostream/
Slide 45
Slide 45 text
sacred cow of databases
NoSQL => helps with writes
denormalization => helps with HUGE DBs
sharding => helps with Big DBs
Slide 46
Slide 46 text
https://tools.percona.com/
Percona toolkit [*]
(formerly maat-kit)
tcpdump + Percona toolkit
Logs are vital!
Every engine has strongs & weakness
Better on bare metal!
MySQL Tune & Benchmarking
tools
Slide 47
Slide 47 text
root hardware causes
network & DNS play a role
static content depends mainly on I/O
dynamic content (php) depends on CPU
database server mainly depends on RAM
Slide 48
Slide 48 text
Drupal known issues (DB): Watchdog, sessions,
accesslog... history...
Please do stress, load & stability tests regularly
in your live system
extra balls:
Slide 49
Slide 49 text
This is our way, what is
yours?
(no cows were harmed in the making of this
presentation)
Slide 50
Slide 50 text
¿Questions?
Pablo Picasso [speaking of computers]:
"But they are useless. They can only give you
answers."