Drupal Performance Census - BADCamp 2016

Preview:

Citation preview

Drupal Performance Census: Live Lessons From Over 2000 Sites

1

Josh Koenig Co-Founder

Head of Productpantheon.io

drupal.org/user/3313@outlandishjosh

2

3

4

Efficient Dev Teams + Elastic Platform

5

6

7

8

9

Pantheon.io

Traditional Hosting

Even “fanatical” support can’t help with your app.Happy to reboot the box!

CMS Support Spectrum: What’s Missing?

10

“IaaS”

On your own vs the Zombie Apocalypse.Good luck!

Managed CMS

Sacrifice developer velocity to “guarantee” the application.Sorry, you can’t deploy that.

Pantheon.io

Traditional Hosting

Even “fanatical” support can’t help with your app.Happy to reboot the box!

CMS Support Spectrum: What’s Missing?

11

“IaaS”

On your own vs the Zombie Apocalypse.Good luck!

Managed CMS

Sacrifice developer velocity to “guarantee” the application.Sorry, you can’t deploy that.

?

12

There’s a better way to do this...

Pantheon.io

New Relic APM Pro: Launched June 26th

13

14

15

16

Pantheon.io

How the Data Flows

17

PHP

new_relic.so

Data Cloudrpm.newrelic.com

Collectornewrelic.daemon

On Pantheon In New Relic

Pantheon.io

What That Looks Like

18

Pantheon.io

New Relic Measures App Execution

19

Pantheon.io

Reverse-Proxy is Effectively Light-Speed

20

Pantheon.io

This Is Where The APM Action Is

21

22

23

24

25

26

Get the Data Already!

27

Pantheon.io

Census Methodology

● Actual Population: ~2000 sites ~3M transactions

● Mid-day one-hour data samples

● Queried out of New Relic’s API and then stored in MySQL

● Data Captured:

⌾ Total Throughput & response time

⌾ Query count & response time

⌾ External call count & response time

⌾ Views call count & response time

28

29

30

Only the names have been changed, to protect the innocent.

Just the facts, maam. Just the facts.

Pantheon.io

On Average: pretty good!

31

Pantheon.io

On Average: pretty good!

32

Pantheon.io

But… Painfully Slow at Times

33

Pantheon.io

Throughput and Performance Correlate

34

Pantheon.io

I/O is Still The Big Pain Point

> SELECT name, call_count, average_response_time, nrm.max_response_time FROM New_relic_metrics WHERE application_id = 513593

+-------------------------+------------+-----------------------+-------------------+| name | call_count | average_response_time | max_response_time |+-------------------------+------------+-----------------------+-------------------+| WebTransactionTotalTime | 4628 | 2570 | 426000.0000 || External/all | 7236 | 317 | 5000.0000 || Datastore/MySQL/all | 858749 | 1 | 1120.0000 || Datastore/Redis/all | 1757799 | 1 | 426.0000 |+-------------------------+------------+-----------------------+-------------------+

35

Pantheon.io

Views Isn’t a Kiss of Death

36

Pantheon.io

Views Isn’t a Kiss of Death

37

Pantheon.io

Views Isn’t a Kiss of Death

38

Pantheon.io

SQL Queries vs Avg Page Response

39

40

Pantheon.io

External API Calls

41

Pantheon.io

External API Calls

42

43

44

Pantheon.io

Long Loops and PHP Can Also Kill You

45

● Page responses 30s +

● No significant DB activity

● No web external calls

● ??????

● Stack trace shows lots of calls to form cache

● One REST API endpoint rendering ~1500 nodes (including building edit forms)

Looking Ahead

46

Pantheon.io

PHP 7 is Full of Win

47

Pantheon.io

PHP 7 is Full of Win

48

Pantheon.io

LCache is (potentially) full of win

49

Pantheon.io

LCache is (potentially) full of win

50

Pantheon.io

● Gather more data on Drupal 8

● Identifying modules associated w/slowness

● Build/measure/learn on core improvements

Future Data Spelunking

51

Questions?

52

Recommended