Slide 1

Slide 1 text

Magento doen affeceren Deur Thijs’tn van Feryn’s

Slide 2

Slide 2 text

keireltjes Thijs Yo Ik zien

Slide 3

Slide 3 text

En ik zien @ThijsFeryn ip Twitter

Slide 4

Slide 4 text

’k Zien bie Evangelist

Slide 5

Slide 5 text

En ’k zitt’n van ook in ’t besteur

Slide 6

Slide 6 text

’k Weunen in Diksmude

Slide 7

Slide 7 text

Aan de Pluum’n

Slide 8

Slide 8 text

Juuste niet bachten de Kupe

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

’t Is soms een bitje trage

Slide 12

Slide 12 text

Mo wel wreed flexibel

Slide 13

Slide 13 text

In’t begin kenden we der niet vele van

Slide 14

Slide 14 text

W’en wreed vele biegeleerd

Slide 15

Slide 15 text

Mo ’t ed tied gekost

Slide 16

Slide 16 text

De eerste pogingen

Slide 17

Slide 17 text

Eerste pogingen ✓Dikke machinen derachter zetten ✓Vele heheuhen en zwoare CPU’s ✓Loadbalancing ip de webservers ✓Master/master op de MySQL’s ✓Hoge memory limit ✓APC byte code caching

Slide 18

Slide 18 text

Ip zoek no Magento kennisse

Slide 19

Slide 19 text

Eerste Magento kennisse ✓Caching activeren in ’t admin panel ✓Flat catalogs ✓De Magento compiler ✓JS & CSS minification

Slide 20

Slide 20 text

Magento compiler is dikke zever en een hoop miserie!

Slide 21

Slide 21 text

Gebruukt een echte byte code cache in de plekke

Slide 22

Slide 22 text

’t Gienk ol een klein bitje rapper Mo nie voe te roepen

Slide 23

Slide 23 text

Eerste concluuzjes

Slide 24

Slide 24 text

Eerste concluuzjes ✓Gelik verwacht vele RAM en CPU verbruuk ✓Verdacht vele I/O ✓Meha vele belastienge ip de MySQL

Slide 25

Slide 25 text

W’en  leren  cachen

Slide 26

Slide 26 text

Standoard ip de schieve in /var/cache

Slide 27

Slide 27 text

./mage-­‐-­‐c   ./mage-­‐-­‐a   ./mage-­‐-­‐4   ./mage-­‐-­‐7   ./mage-­‐-­‐e   ./mage-­‐-­‐5   ./mage-­‐-­‐b   ./mage-­‐-­‐9   ./mage-­‐-­‐0   ./mage-­‐-­‐f   ./mage-­‐-­‐3   ./mage-­‐-­‐6   ./mage-­‐-­‐8   ./mage-­‐-­‐d   ./mage-­‐-­‐1

Slide 28

Slide 28 text

./mage-­‐-­‐8/mage-­‐-­‐-­‐internal-­‐metadatas-­‐-­‐-­‐MAGE_STORE_BE_EN_CONFIG_CACHE   ./mage-­‐-­‐8/mage-­‐-­‐-­‐internal-­‐metadatas-­‐-­‐-­‐MAGE_STORE_LU_EN_CONFIG_CACHE   ./mage-­‐-­‐8/mage-­‐-­‐-­‐MAGE_STORE_NL_NL_CONFIG_CACHE   ./mage-­‐-­‐8/mage-­‐-­‐-­‐MAGE_STORE_LU_EN_CONFIG_CACHE   ./mage-­‐-­‐8/mage-­‐-­‐-­‐MAGE_STORE_LU_FR_CONFIG_CACHE   ./mage-­‐-­‐8/mage-­‐-­‐-­‐MAGE_STORE_FR_EN_CONFIG_CACHE   ./mage-­‐-­‐8/mage-­‐-­‐-­‐internal-­‐metadatas-­‐-­‐-­‐MAGE_STORE_LU_FR_CONFIG_CACHE   ./mage-­‐-­‐8/mage-­‐-­‐-­‐MAGE_STORE_BE_FR_CONFIG_CACHE   ./mage-­‐-­‐8/mage-­‐-­‐-­‐MAGE_STORE_ADMIN_CONFIG_CACHE   ./mage-­‐-­‐8/mage-­‐-­‐-­‐internal-­‐metadatas-­‐-­‐-­‐MAGE_STORE_BE_FR_CONFIG_CACHE   ./mage-­‐-­‐8/mage-­‐-­‐-­‐MAGE_DB_PDO_MYSQL_DDL_sales_flat_shipment_grid_3   ./mage-­‐-­‐d/mage-­‐-­‐-­‐internal-­‐metadatas-­‐-­‐-­‐MAGE_APP_E4D52B98688947405EDE639E947EE03D   ./mage-­‐-­‐d/mage-­‐-­‐-­‐MAGE_APP_B1FB6E8F13287C01E5C05063633DDA4C   ./mage-­‐-­‐d/mage-­‐-­‐-­‐MAGE_DB_PDO_MYSQL_DDL_log_url_info_1   ./mage-­‐-­‐d/mage-­‐-­‐-­‐MAGE_APP_E4D52B98688947405EDE639E947EE03D   ./mage-­‐-­‐d/mage-­‐-­‐-­‐internal-­‐metadatas-­‐-­‐-­‐MAGE_APP_B1FB6E8F13287C01E5C05063633DDA4C   ./mage-­‐-­‐d/mage-­‐-­‐-­‐internal-­‐metadatas-­‐-­‐-­‐MAGE_DB_PDO_MYSQL_DDL_log_url_info_1   ./mage-­‐-­‐1/mage-­‐-­‐-­‐MAGE_Zend_LocaleC_nl_NL_currencysymbol_   ./mage-­‐-­‐1/mage-­‐-­‐-­‐MAGE_Zend_LocaleC_nl_NL_nametocurrency_   ./mage-­‐-­‐1/mage-­‐-­‐-­‐internal-­‐metadatas-­‐-­‐-­‐MAGE_Zend_LocaleC_nl_NL_currencynumber_   ./mage-­‐-­‐1/mage-­‐-­‐-­‐internal-­‐metadatas-­‐-­‐-­‐MAGE_Zend_LocaleC_nl_NL_currencysymbol_   ./mage-­‐-­‐1/mage-­‐-­‐-­‐MAGE_Zend_LocaleC_nl_NL_currencynumber_   ./mage-­‐-­‐1/mage-­‐-­‐-­‐internal-­‐metadatas-­‐-­‐-­‐MAGE_Zend_LocaleC_nl_NL_nametocurrency_

Slide 29

Slide 29 text

APC

Slide 30

Slide 30 text

In app/etc/local.xml                            apc                  MAGE_            

Slide 31

Slide 31 text

Memcached

Slide 32

Slide 32 text

                                                                                                                        In app/etc/local.xml Meerdere servers meuglik

Slide 33

Slide 33 text

Toch nog files in /var/ cache?

Slide 34

Slide 34 text

2-level cache ✓Een rappe backend (den adapter) ✓Een trage backend (standoard file)

Slide 35

Slide 35 text

/var/cache in tmpfs mount  -­‐t  tmpfs  -­‐o  size=20m  tmpfs  /var/www/var/cache

Slide 36

Slide 36 text

De machienerie ipdrieven

Slide 37

Slide 37 text

is trage

Slide 38

Slide 38 text

Zeker d’oede versies

Slide 39

Slide 39 text

Magento werkt „zohezeid” niet met nieuwe versies

Slide 40

Slide 40 text

Wieder en ’t an de klap gekrehen met vuuve punt viere

Slide 41

Slide 41 text

Zoender byte code cache ziej gezien!

Slide 42

Slide 42 text

We woaren vergeetn dat APC niet werkt ip FastCGI

Slide 43

Slide 43 text

19280  33686  1.3    0.4  322052  110408  ?  S  14:07  0:01  /usr/local/php-­‐5.4/bin/php-­‐cgi   18834  33696  0.0    0.0  267780  13608  ?    S  14:07  0:00  /usr/local/php-­‐5.4/bin/php-­‐cgi   19280  33698  0.9    0.4  321808  110948  ?  S  14:07  0:01  /usr/local/php-­‐5.4/bin/php-­‐cgi   19057  33700  0.0    0.0  268124  13416  ?    S  14:07  0:00  /usr/local/php-­‐5.4/bin/php-­‐cgi   18767  33710  0.0    0.0  269728  14156  ?    S  14:08  0:00  /usr/local/php-­‐5.4/bin/php-­‐cgi Losse processen zoender gedeelde cache

Slide 44

Slide 44 text

We woaren ook vergeetn dat APC vuuligheid is

Slide 45

Slide 45 text

Serieus!

Slide 46

Slide 46 text

-FPM

Slide 47

Slide 47 text

root  26067  0.0  0.0  342892  6248  ?  S  13:43  0:00  php-­‐fpm:  master  process  (/etc/ php5/fpm/php-­‐fpm.conf)   www-­‐data  26068    0.2    1.1  396952  94684  ?  S  13:43  0:03  php-­‐fpm:  pool  www   www-­‐data  26069    0.0    0.6  363472  56456  ?  S  13:43  0:01  php-­‐fpm:  pool  www   www-­‐data  26087    0.0    0.6  362708  50188  ?  S  13:44  0:00  php-­‐fpm:  pool  www Master proces dat de caches bieoet

Slide 48

Slide 48 text

Opcache is machtig! … en ook een slag rapper

Slide 49

Slide 49 text

zend_extension=/usr/lib/php5/20100525/opcache.so   opcache.validate_timestamps  =  off   opcache.memory_consumption  =  128   opcache.max_accelerated_files  =  20000 Agressieve tuninge

Slide 50

Slide 50 text

Files aangepast? ! ! ! /etc/init.d/php-fpm reload of opcache_reset()

Slide 51

Slide 51 text

realpath_cache_size  =  512k   realpath_cache_ttl  =  3600 Poaden cachen

Slide 52

Slide 52 text

Olles in’t heheuhen!!!

Slide 53

Slide 53 text

%  time          seconds    usecs/call          calls        errors  syscall   -­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐    53.78        0.012718                    13              953                  3  stat    34.15        0.008076                      2            3369              215  access      6.03        0.001426                      2              785                      flock      3.40        0.000803                      0            3283                      read      2.19        0.000519                      0            1210                      open      0.30        0.000071                      0              986                      write      0.10        0.000024                      0          24254                      time      0.05        0.000012                      0            1582                      fstat      0.00        0.000000                      0            1212                      close      0.00        0.000000                      0            2011            2011  lstat      0.00        0.000000                      0              976                      poll      0.00        0.000000                      0            1305                      lseek      0.00        0.000000                      0                  1                      mmap      0.00        0.000000                      0                  1                      munmap      0.00        0.000000                      0                84                      brk      0.00        0.000000                      0                  1                      rt_sigaction      0.00        0.000000                      0                  1                      rt_sigprocmask      0.00        0.000000                      0                  1                      pwrite      0.00        0.000000                      0                  4                      setitimer      0.00        0.000000                      0                  1                      socket      0.00        0.000000                      0                  1                  1  connect      0.00        0.000000                      0                  1                      accept      0.00        0.000000                      0                  1                      recvfrom      0.00        0.000000                      0                  2                      shutdown      0.00        0.000000                      0                  5                      setsockopt      0.00        0.000000                      0                  8                      fcntl      0.00        0.000000                      0                  2                      getdents      0.00        0.000000                      0                  5                      getcwd      0.00        0.000000                      0                  2                      chdir      0.00        0.000000                      0              217              217  readlink      0.00        0.000000                      0                  3                      umask   -­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐   100.00        0.023649                                  42267            2447  total Vele   lstats Zonder   opcache

Slide 54

Slide 54 text

%  time          seconds    usecs/call          calls        errors  syscall   -­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐   100.00        0.000007                      0            3109                      read      0.00        0.000000                      0              971                      write      0.00        0.000000                      0            1182                      open      0.00        0.000000                      0            1184                      close      0.00        0.000000                      0              463                  2  stat      0.00        0.000000                      0            1548                      fstat      0.00        0.000000                      0              960                      poll      0.00        0.000000                      0            1271                      lseek      0.00        0.000000                      0                64                      brk      0.00        0.000000                      0                  1                      rt_sigaction      0.00        0.000000                      0                  1                      rt_sigprocmask      0.00        0.000000                      0                  1                      pwrite      0.00        0.000000                      0            3385              377  access      0.00        0.000000                      0                  3                      setitimer      0.00        0.000000                      0                  1                      socket      0.00        0.000000                      0                  1                      connect      0.00        0.000000                      0                  1                      accept      0.00        0.000000                      0                  1                      shutdown      0.00        0.000000                      0                  4                  1  setsockopt      0.00        0.000000                      0                  8                      fcntl      0.00        0.000000                      0              781                      flock      0.00        0.000000                      0                  2                      getdents      0.00        0.000000                      0                  3                      getcwd      0.00        0.000000                      0                  2                      chdir      0.00        0.000000                      0                  3                      umask      0.00        0.000000                      0                  2                      times      0.00        0.000000                      0            2195                      time   -­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐   100.00        0.000007                                  17147              380  total Geen   lstats Met     opcache

Slide 55

Slide 55 text

W’en ook naar HVVM gekeek’n

Slide 56

Slide 56 text

De database is ook belangriek

Slide 57

Slide 57 text

query_cache_limit                              =  5M   query_cache_size                                =  64M   join_buffer_size                                =  32M   innodb_buffer_pool_size                  =  1024M   innodb_additional_mem_pool_size  =  50M   key_buffer_size                                  =  64M   sort_buffer_size                                =  5M   read_buffer_size                                =  5M   read_rnd_buffer_size                        =  10M MySQL meer heheuhen geevn

Slide 58

Slide 58 text

Wuk homme pak’n?

Slide 59

Slide 59 text

                                                                                                                       1                                                                                                                                                            pdo_mysql                  mysql4                  SET  NAMES  utf8                  1                                   R/W   splittinge

Slide 60

Slide 60 text

En in ene keer was Redis doa gezet!

Slide 61

Slide 61 text

is ZALIG! ✓Standoard ingebouwde replicoasje ✓Spesjale datatiep’n (hash, list, …) ✓De meuglikeid voe te saven ip disk ✓Session clustering ✓Cm_Cache_Backend_Redis standoard vanaf Magento 1.8 CE en 1.13 EE ✓Geen 2-level cache ✓Meerdere databases ✓Authenticoasje

Slide 62

Slide 62 text

Cm_Cache_Backend_Redis https://github.com/colinmollenhour/ Cm_Cache_Backend_Redis

Slide 63

Slide 63 text

In app/etc/local.xml                Cm_Cache_Backend_Redis                        127.0.0.1              6379                            1                            0              1              10              0              1              1              20480              gzip                  

Slide 64

Slide 64 text

Cm_RedisSession https://github.com/colinmollenhour/Cm_RedisSession

Slide 65

Slide 65 text

In app/etc/modules/Cm_RedisSession.xml                              true              community                  

Slide 66

Slide 66 text

In app/etc/local.xml      db                127.0.0.1          6379                    2.5                    1          2048          gzip          1          6          5          30          7200        

Slide 67

Slide 67 text

Varnish

Slide 68

Slide 68 text

Varnish ✓Werkt juuste in de cataloog en de CMS pagina’s ✓Werkt dus nie bie de checkout ✓Oj sessiedata gebruukt in de cataloog goat ’t ook niet marcheren ✓Is ook ideal voor statische bestand’n ✓Gin SSL onderseunienge ✓De beste maniere voe full page caching te doen

Slide 69

Slide 69 text

Hit rate is niet te vet

Slide 70

Slide 70 text

Turpentine https://github.com/nexcess/magento-turpentine

Slide 71

Slide 71 text

Turpentine ✓Community module voe Varnish in Magento ✓ESI of AJAX voe session data ✓Configureerboar in den admin ✓VCL wordt geduwd van Turpentine no Varnish via den Telnet interface ✓Doet de nodige purginge ✓SSL terminoasje via Nginx of Pound

Slide 72

Slide 72 text

Lesti_FPC Oj nie met Varnish wilt of kund werk’n https://github.com/GordonLesti/Lesti_Fpc

Slide 73

Slide 73 text

In app/etc/local.xml                86400     false          Cm_Cache_Backend_Redis                        127.0.0.1              6379              cache-­‐fpc              1                            1              1              86400              10              1              1              gzip                   Werkt  ook   met  andere   backends

Slide 74

Slide 74 text

Makt van je logtabel’n blackhole tables. ! Met Varnish/Lesti_FPC gebruuk je ze toch nie

Slide 75

Slide 75 text

ALTER  TABLE  `log_customer`  ENGINE=BLACKHOLE;   ALTER  TABLE  `log_quote`  ENGINE=BLACKHOLE;   ALTER  TABLE  `log_summary`  ENGINE=BLACKHOLE;   ALTER  TABLE  `log_summary_type`  ENGINE=BLACKHOLE;   ALTER  TABLE  `log_url`  ENGINE=BLACKHOLE;   ALTER  TABLE  `log_url_info`  ENGINE=BLACKHOLE;   ALTER  TABLE  `log_visitor`  ENGINE=BLACKHOLE;   ALTER  TABLE  `log_visitor_info`  ENGINE=BLACKHOLE;   ALTER  TABLE  `log_visitor_online`  ENGINE=BLACKHOLE;

Slide 76

Slide 76 text

Zoek’n

Slide 77

Slide 77 text

Full-text search ip de database is onnozel! … en trage

Slide 78

Slide 78 text

Je zoe met kun’n werk’n …

Slide 79

Slide 79 text

Mor is vele sjieker! https://github.com/jreinke/magento-Elasticsearch

Slide 80

Slide 80 text

Static files apart hosten (~CDN) http://www.magentocommerce.com/magento- connect/onepica-imagecdn-1.html

Slide 81

Slide 81 text

Horizontaal schaaln

Slide 82

Slide 82 text

Loadbalanced ElasticSearch Redis Loadbalanced MySQL MySQL Loadbalanced frontend Nginx Nginx Loadbalanced Varnish Varnish Loadbalanced backend Nginx Nginx Client Admin PHP-FPM PHP-FPM PHP-FPM PHP-FPM SSL endpoint ElasticSearch

Slide 83

Slide 83 text

Probleem!

Slide 84

Slide 84 text

Cm_Cache_Backend_R edis kun nie overweg met meerdre servers

Slide 85

Slide 85 text

Mo ’kzien dermee bezig, wi!

Slide 86

Slide 86 text

https://github.com/ThijsFeryn/ credis/tree/sentinel https://github.com/ThijsFeryn/ Cm_Cache_Backend_Redis/tree/ multiserver Multi-­‐ server   support Achterliggende   library

Slide 87

Slide 87 text

Redis multi-server ✓Client-side distribuusje ✓Master/slave ✓Sentinel

Slide 88

Slide 88 text

In app/etc/local.xml                Cm_Cache_Backend_Redis                                                                127.0.0.1                      6379                                            1                                                                                                    127.0.0.1                      6380                                            1                                                                                             Client-­‐side   hash   distribution

Slide 89

Slide 89 text

   public  function  hash($key)      {          $needle  =  hexdec(substr(md5($key),0,7));          $server  =  $min  =  0;          $max  =  count($this-­‐>nodes)  -­‐  1;          while  ($max  >=  $min)  {              $position  =  (int)  (($min  +  $max)  /  2);              $server  =  $this-­‐>nodes[$position];              if  ($needle  <  $server)  {                  $max  =  $position  -­‐  1;              }              else  if  ($needle  >  $server)  {                  $min  =  $position  +  1;              }              else  {                  break;              }          }          return  $this-­‐>ring[$server];      }   }

Slide 90

Slide 90 text

In app/etc/local.xml                Cm_Cache_Backend_Redis                                                                127.0.0.1                      6379                                            1                                            true                                                                              127.0.0.1                      6380                                            1                                                                                    true                       Master/slave

Slide 91

Slide 91 text

Sentinel

Slide 92

Slide 92 text

Sentinel ✓Discovery service voe Redis servers ✓Deel van de Redis core ✓Monitoring, notification & autofailover ✓Wit wuk dat de masters & slaves zien ✓Vorkomt zevers ot de master no de wup is ✓Vorkomt zevers ot de master werekeert ✓Eest met Sentinel verbiend’n, toene mo met Redis

Slide 93

Slide 93 text

port  26379   sentinel  monitor  mymaster  127.0.0.1  6379  1   sentinel  down-­‐after-­‐milliseconds  mymaster  5000   sentinel  parallel-­‐syncs  mymaster  2 daemonize  yes   dir  ./   pidfile  redis-­‐master.pid   port  6379 daemonize  yes   dir  ./   pidfile  redis-­‐slave.pid   port  6380   slaveof  127.0.0.1  6379 daemonize  yes   dir  ./   pidfile  redis-­‐slave2.pid   port  6381   slaveof  127.0.0.1  6379 Sentinel   master/slave   config redis-­‐server  redis-­‐master.conf   redis-­‐server  redis-­‐slave.conf   redis-­‐server  redis-­‐slave2.conf   redis-­‐sentinel  redis-­‐sentinel.conf

Slide 94

Slide 94 text

Loadbalanced Redis master Client Loadbalanced Sentinel Sentinel Redis slave Redis slave

Slide 95

Slide 95 text

[74129]  08  Apr  15:54:35.443  *  Max  number  of  open  files  set  to  10032                                  _._                        _.-­‐``__  ''-­‐._              _.-­‐``        `.    `_.    ''-­‐._                      Redis  2.8.7  (00000000/0)  64  bit      .-­‐``  .-­‐```.    ```\/        _.,_  ''-­‐._    (        '            ,              .-­‐`    |  `,        )          Running  in  stand  alone  mode    |`-­‐._`-­‐...-­‐`  __...-­‐.``-­‐._|'`  _.-­‐'|          Port:  6379    |        `-­‐._      `._        /          _.-­‐'        |          PID:  74129      `-­‐._        `-­‐._    `-­‐./    _.-­‐'        _.-­‐'    |`-­‐._`-­‐._        `-­‐.__.-­‐'        _.-­‐'_.-­‐'|    |        `-­‐._`-­‐._                _.-­‐'_.-­‐'        |                      http://redis.io      `-­‐._        `-­‐._`-­‐.__.-­‐'_.-­‐'        _.-­‐'    |`-­‐._`-­‐._        `-­‐.__.-­‐'        _.-­‐'_.-­‐'|    |        `-­‐._`-­‐._                _.-­‐'_.-­‐'        |      `-­‐._        `-­‐._`-­‐.__.-­‐'_.-­‐'        _.-­‐'              `-­‐._        `-­‐.__.-­‐'        _.-­‐'                      `-­‐._                _.-­‐'                              `-­‐.__.-­‐'   ! [74129]  08  Apr  15:54:35.445  #  Server  started,  Redis  version  2.8.7   [74129]  08  Apr  15:54:35.445  *  The  server  is  now  ready  to  accept  connections  on  port  6379   [74129]  08  Apr  15:54:53.105  *  Slave  asks  for  synchronization   [74129]  08  Apr  15:54:53.105  *  Full  resync  requested  by  slave.   [74129]  08  Apr  15:54:53.105  *  Starting  BGSAVE  for  SYNC   [74129]  08  Apr  15:54:53.106  *  Background  saving  started  by  pid  74188   [74188]  08  Apr  15:54:53.107  *  DB  saved  on  disk   [74129]  08  Apr  15:54:53.184  *  Background  saving  terminated  with  success   [74129]  08  Apr  15:54:53.184  *  Synchronization  with  slave  succeeded   [74129]  08  Apr  15:55:08.601  *  Slave  asks  for  synchronization   [74129]  08  Apr  15:55:08.601  *  Full  resync  requested  by  slave.   [74129]  08  Apr  15:55:08.601  *  Starting  BGSAVE  for  SYNC   [74129]  08  Apr  15:55:08.602  *  Background  saving  started  by  pid  74268   [74268]  08  Apr  15:55:08.604  *  DB  saved  on  disk   [74129]  08  Apr  15:55:08.609  *  Background  saving  terminated  with  success   [74129]  08  Apr  15:55:08.609  *  Synchronization  with  slave  succeeded Master

Slide 96

Slide 96 text

[74187]  08  Apr  15:54:52.102  *  Max  number  of  open  files  set  to  10032                                  _._                        _.-­‐``__  ''-­‐._              _.-­‐``        `.    `_.    ''-­‐._                      Redis  2.8.7  (00000000/0)  64  bit      .-­‐``  .-­‐```.    ```\/        _.,_  ''-­‐._    (        '            ,              .-­‐`    |  `,        )          Running  in  stand  alone  mode    |`-­‐._`-­‐...-­‐`  __...-­‐.``-­‐._|'`  _.-­‐'|          Port:  6381    |        `-­‐._      `._        /          _.-­‐'        |          PID:  74187      `-­‐._        `-­‐._    `-­‐./    _.-­‐'        _.-­‐'    |`-­‐._`-­‐._        `-­‐.__.-­‐'        _.-­‐'_.-­‐'|    |        `-­‐._`-­‐._                _.-­‐'_.-­‐'        |                      http://redis.io      `-­‐._        `-­‐._`-­‐.__.-­‐'_.-­‐'        _.-­‐'    |`-­‐._`-­‐._        `-­‐.__.-­‐'        _.-­‐'_.-­‐'|    |        `-­‐._`-­‐._                _.-­‐'_.-­‐'        |      `-­‐._        `-­‐._`-­‐.__.-­‐'_.-­‐'        _.-­‐'              `-­‐._        `-­‐.__.-­‐'        _.-­‐'                      `-­‐._                _.-­‐'                              `-­‐.__.-­‐'   ! [74187]  08  Apr  15:54:52.105  #  Server  started,  Redis  version  2.8.7   [74187]  08  Apr  15:54:52.105  *  The  server  is  now  ready  to  accept  connections  on  port  6381   [74187]  08  Apr  15:54:53.104  *  Connecting  to  MASTER  127.0.0.1:6379   [74187]  08  Apr  15:54:53.104  *  MASTER  <-­‐>  SLAVE  sync  started   [74187]  08  Apr  15:54:53.105  *  Non  blocking  connect  for  SYNC  fired  the  event.   [74187]  08  Apr  15:54:53.105  *  Master  replied  to  PING,  replication  can  continue...   [74187]  08  Apr  15:54:53.105  *  Partial  resynchronization  not  possible  (no  cached  master)   [74187]  08  Apr  15:54:53.106  *  Full  resync  from  master:  021fe0141871282912fee4951b40ed4579916bd0:1   [74187]  08  Apr  15:54:53.184  *  MASTER  <-­‐>  SLAVE  sync:  receiving  18  bytes  from  master   [74187]  08  Apr  15:54:53.185  *  MASTER  <-­‐>  SLAVE  sync:  Flushing  old  data   [74187]  08  Apr  15:54:53.185  *  MASTER  <-­‐>  SLAVE  sync:  Loading  DB  in  memory   [74187]  08  Apr  15:54:53.185  *  MASTER  <-­‐>  SLAVE  sync:  Finished  with  success Slave

Slide 97

Slide 97 text

[74267]  08  Apr  15:55:08.596  *  Max  number  of  open  files  set  to  10032                                  _._                        _.-­‐``__  ''-­‐._              _.-­‐``        `.    `_.    ''-­‐._                      Redis  2.8.7  (00000000/0)  64  bit      .-­‐``  .-­‐```.    ```\/        _.,_  ''-­‐._    (        '            ,              .-­‐`    |  `,        )          Running  in  stand  alone  mode    |`-­‐._`-­‐...-­‐`  __...-­‐.``-­‐._|'`  _.-­‐'|          Port:  6382    |        `-­‐._      `._        /          _.-­‐'        |          PID:  74267      `-­‐._        `-­‐._    `-­‐./    _.-­‐'        _.-­‐'    |`-­‐._`-­‐._        `-­‐.__.-­‐'        _.-­‐'_.-­‐'|    |        `-­‐._`-­‐._                _.-­‐'_.-­‐'        |                      http://redis.io      `-­‐._        `-­‐._`-­‐.__.-­‐'_.-­‐'        _.-­‐'    |`-­‐._`-­‐._        `-­‐.__.-­‐'        _.-­‐'_.-­‐'|    |        `-­‐._`-­‐._                _.-­‐'_.-­‐'        |      `-­‐._        `-­‐._`-­‐.__.-­‐'_.-­‐'        _.-­‐'              `-­‐._        `-­‐.__.-­‐'        _.-­‐'                      `-­‐._                _.-­‐'                              `-­‐.__.-­‐'   ! [74267]  08  Apr  15:55:08.598  #  Server  started,  Redis  version  2.8.7   [74267]  08  Apr  15:55:08.598  *  DB  loaded  from  disk:  0.000  seconds   [74267]  08  Apr  15:55:08.598  *  The  server  is  now  ready  to  accept  connections  on  port  6382   [74267]  08  Apr  15:55:08.600  *  Connecting  to  MASTER  127.0.0.1:6379   [74267]  08  Apr  15:55:08.600  *  MASTER  <-­‐>  SLAVE  sync  started   [74267]  08  Apr  15:55:08.600  *  Non  blocking  connect  for  SYNC  fired  the  event.   [74267]  08  Apr  15:55:08.601  *  Master  replied  to  PING,  replication  can  continue...   [74267]  08  Apr  15:55:08.601  *  Partial  resynchronization  not  possible  (no  cached  master)   [74267]  08  Apr  15:55:08.602  *  Full  resync  from  master:  021fe0141871282912fee4951b40ed4579916bd0:29   [74267]  08  Apr  15:55:08.609  *  MASTER  <-­‐>  SLAVE  sync:  receiving  18  bytes  from  master   [74267]  08  Apr  15:55:08.609  *  MASTER  <-­‐>  SLAVE  sync:  Flushing  old  data   [74267]  08  Apr  15:55:08.609  *  MASTER  <-­‐>  SLAVE  sync:  Loading  DB  in  memory   [74267]  08  Apr  15:55:08.610  *  MASTER  <-­‐>  SLAVE  sync:  Finished  with  success Slave   2

Slide 98

Slide 98 text

[74338]  08  Apr  15:55:26.293  *  Max  number  of  open  files  set  to  10032                                  _._                        _.-­‐``__  ''-­‐._              _.-­‐``        `.    `_.    ''-­‐._                      Redis  2.8.7  (00000000/0)  64  bit      .-­‐``  .-­‐```.    ```\/        _.,_  ''-­‐._    (        '            ,              .-­‐`    |  `,        )          Running  in  sentinel  mode    |`-­‐._`-­‐...-­‐`  __...-­‐.``-­‐._|'`  _.-­‐'|          Port:  26379    |        `-­‐._      `._        /          _.-­‐'        |          PID:  74338      `-­‐._        `-­‐._    `-­‐./    _.-­‐'        _.-­‐'    |`-­‐._`-­‐._        `-­‐.__.-­‐'        _.-­‐'_.-­‐'|    |        `-­‐._`-­‐._                _.-­‐'_.-­‐'        |                      http://redis.io      `-­‐._        `-­‐._`-­‐.__.-­‐'_.-­‐'        _.-­‐'    |`-­‐._`-­‐._        `-­‐.__.-­‐'        _.-­‐'_.-­‐'|    |        `-­‐._`-­‐._                _.-­‐'_.-­‐'        |      `-­‐._        `-­‐._`-­‐.__.-­‐'_.-­‐'        _.-­‐'              `-­‐._        `-­‐.__.-­‐'        _.-­‐'                      `-­‐._                _.-­‐'                              `-­‐.__.-­‐'   ! [74338]  08  Apr  15:55:26.299  #  Sentinel  runid  is  984143fbdaeaa2b724ebe9ae6d85b3ae2f11cfce   [74338]  08  Apr  15:55:26.299  #  +monitor  master  mymaster  127.0.0.1  6379  quorum  1   [74338]  08  Apr  15:55:27.296  *  +slave  slave  127.0.0.1:6381  127.0.0.1  6381  @  mymaster  127.0.0.1  6379   [74338]  08  Apr  15:55:27.296  *  +slave  slave  127.0.0.1:6382  127.0.0.1  6382  @  mymaster  127.0.0.1  6379 Sentinel

Slide 99

Slide 99 text

[74338]  08  Apr  15:57:39.042  #  +sdown  master  mymaster  127.0.0.1  6379   [74338]  08  Apr  15:57:39.042  #  +odown  master  mymaster  127.0.0.1  6379  #quorum  1/1   [74338]  08  Apr  15:57:39.042  #  +new-­‐epoch  1   [74338]  08  Apr  15:57:39.042  #  +try-­‐failover  master  mymaster  127.0.0.1  6379   [74338]  08  Apr  15:57:39.042  #  +vote-­‐for-­‐leader   984143fbdaeaa2b724ebe9ae6d85b3ae2f11cfce  1   [74338]  08  Apr  15:57:39.042  #  +elected-­‐leader  master  mymaster  127.0.0.1  6379   [74338]  08  Apr  15:57:39.042  #  +failover-­‐state-­‐select-­‐slave  master  mymaster   127.0.0.1  6379   [74338]  08  Apr  15:57:39.145  #  +selected-­‐slave  slave  127.0.0.1:6381  127.0.0.1  6381  @   mymaster  127.0.0.1  6379   [74338]  08  Apr  15:57:39.145  *  +failover-­‐state-­‐send-­‐slaveof-­‐noone  slave   127.0.0.1:6381  127.0.0.1  6381  @  mymaster  127.0.0.1  6379   [74338]  08  Apr  15:57:39.204  *  +failover-­‐state-­‐wait-­‐promotion  slave  127.0.0.1:6381   127.0.0.1  6381  @  mymaster  127.0.0.1  6379   [74338]  08  Apr  15:57:40.052  #  +promoted-­‐slave  slave  127.0.0.1:6381  127.0.0.1  6381  @   mymaster  127.0.0.1  6379   [74338]  08  Apr  15:57:40.052  #  +failover-­‐state-­‐reconf-­‐slaves  master  mymaster   127.0.0.1  6379   [74338]  08  Apr  15:57:40.116  *  +slave-­‐reconf-­‐sent  slave  127.0.0.1:6382  127.0.0.1   6382  @  mymaster  127.0.0.1  6379   [74338]  08  Apr  15:57:41.065  *  +slave-­‐reconf-­‐inprog  slave  127.0.0.1:6382  127.0.0.1   6382  @  mymaster  127.0.0.1  6379   [74338]  08  Apr  15:57:41.065  *  +slave-­‐reconf-­‐done  slave  127.0.0.1:6382  127.0.0.1   6382  @  mymaster  127.0.0.1  6379   [74338]  08  Apr  15:57:41.128  #  +failover-­‐end  master  mymaster  127.0.0.1  6379   [74338]  08  Apr  15:57:41.128  #  +switch-­‐master  mymaster  127.0.0.1  6379  127.0.0.1  6381   [74338]  08  Apr  15:57:41.128  *  +slave  slave  127.0.0.1:6382  127.0.0.1  6382  @  mymaster   127.0.0.1  6381   [74338]  08  Apr  15:57:41.129  *  +slave  slave  127.0.0.1:6379  127.0.0.1  6379  @  mymaster   127.0.0.1  6381   [74338]  08  Apr  15:57:46.174  #  +sdown  slave  127.0.0.1:6379  127.0.0.1  6379  @  mymaster   127.0.0.1  6381 De master is met z’n hoar

Slide 100

Slide 100 text

[74187]  08  Apr  15:57:38.297  *  Connecting  to  MASTER  127.0.0.1:6379   [74187]  08  Apr  15:57:38.298  *  MASTER  <-­‐>  SLAVE  sync  started   [74187]  08  Apr  15:57:38.298  #  Error  condition  on  socket  for  SYNC:  Connection   refused   [74187]  08  Apr  15:57:39.204  *  Discarding  previously  cached  master  state.   [74187]  08  Apr  15:57:39.204  *  MASTER  MODE  enabled  (user  request)   [74187]  08  Apr  15:57:39.206  #  CONFIG  REWRITE  executed  with  success.   [74187]  08  Apr  15:57:40.685  *  Slave  asks  for  synchronization   [74187]  08  Apr  15:57:40.685  *  Full  resync  requested  by  slave.   [74187]  08  Apr  15:57:40.685  *  Starting  BGSAVE  for  SYNC   [74187]  08  Apr  15:57:40.685  *  Background  saving  started  by  pid  74356   [74356]  08  Apr  15:57:40.687  *  DB  saved  on  disk   [74187]  08  Apr  15:57:40.718  *  Background  saving  terminated  with  success   [74187]  08  Apr  15:57:40.718  *  Synchronization  with  slave  succeeded De slave wordt master

Slide 101

Slide 101 text

[74267]  08  Apr  15:57:39.679  *  Connecting  to  MASTER  127.0.0.1:6379   [74267]  08  Apr  15:57:39.679  *  MASTER  <-­‐>  SLAVE  sync  started   [74267]  08  Apr  15:57:39.679  #  Error  condition  on  socket  for  SYNC:  Connection   refused   [74267]  08  Apr  15:57:40.116  *  Discarding  previously  cached  master  state.   [74267]  08  Apr  15:57:40.117  *  SLAVE  OF  127.0.0.1:6381  enabled  (user  request)   [74267]  08  Apr  15:57:40.118  #  CONFIG  REWRITE  executed  with  success.   [74267]  08  Apr  15:57:40.684  *  Connecting  to  MASTER  127.0.0.1:6381   [74267]  08  Apr  15:57:40.684  *  MASTER  <-­‐>  SLAVE  sync  started   [74267]  08  Apr  15:57:40.684  *  Non  blocking  connect  for  SYNC  fired  the  event.   [74267]  08  Apr  15:57:40.684  *  Master  replied  to  PING,  replication  can   continue...   [74267]  08  Apr  15:57:40.685  *  Partial  resynchronization  not  possible  (no   cached  master)   [74267]  08  Apr  15:57:40.685  *  Full  resync  from  master:   13f081057c3b4c0bb148e53f2097b8c2e8d8dfbb:1   [74267]  08  Apr  15:57:40.718  *  MASTER  <-­‐>  SLAVE  sync:  receiving  18  bytes  from   master   [74267]  08  Apr  15:57:40.718  *  MASTER  <-­‐>  SLAVE  sync:  Flushing  old  data   [74267]  08  Apr  15:57:40.718  *  MASTER  <-­‐>  SLAVE  sync:  Loading  DB  in  memory   [74267]  08  Apr  15:57:40.719  *  MASTER  <-­‐>  SLAVE  sync:  Finished  with  success Den anderen slave moet herconnecteren

Slide 102

Slide 102 text

[74359]  08  Apr  16:01:49.806  #  Server  started,  Redis  version  2.8.7   [74359]  08  Apr  16:01:49.806  *  DB  loaded  from  disk:  0.000  seconds   [74359]  08  Apr  16:01:49.806  *  The  server  is  now  ready  to  accept  connections   on  port  6379   [74359]  08  Apr  16:01:59.877  *  SLAVE  OF  127.0.0.1:6381  enabled  (user  request)   [74359]  08  Apr  16:01:59.877  #  CONFIG  REWRITE  executed  with  success.   [74359]  08  Apr  16:01:59.888  *  Connecting  to  MASTER  127.0.0.1:6381   [74359]  08  Apr  16:01:59.889  *  MASTER  <-­‐>  SLAVE  sync  started   [74359]  08  Apr  16:01:59.889  *  Non  blocking  connect  for  SYNC  fired  the  event.   [74359]  08  Apr  16:01:59.889  *  Master  replied  to  PING,  replication  can   continue...   [74359]  08  Apr  16:01:59.890  *  Partial  resynchronization  not  possible  (no   cached  master)   [74359]  08  Apr  16:01:59.890  *  Full  resync  from  master:   13f081057c3b4c0bb148e53f2097b8c2e8d8dfbb:17013   [74359]  08  Apr  16:01:59.985  *  MASTER  <-­‐>  SLAVE  sync:  receiving  18  bytes  from   master   [74359]  08  Apr  16:01:59.985  *  MASTER  <-­‐>  SLAVE  sync:  Flushing  old  data   [74359]  08  Apr  16:01:59.985  *  MASTER  <-­‐>  SLAVE  sync:  Loading  DB  in  memory   [74359]  08  Apr  16:01:59.986  *  MASTER  <-­‐>  SLAVE  sync:  Finished  with  success De master is doar were en is geen master meer

Slide 103

Slide 103 text

In app/etc/local.xml                Cm_Cache_Backend_Redis                                                                127.0.0.1                      26379                                                                      127.0.0.1                      26380                                                              true          true                  true                          mymaster                   Sentinel

Slide 104

Slide 104 text

Witje wuk dak vandage gevoen’dn en?

Slide 105

Slide 105 text

                           Zend_Cache_Backend_Apc                  MAGE_                                        apc                  MAGE_             2-level cache deruut aaln

Slide 106

Slide 106 text

En van zukke dieng liggen wieder wakker

Slide 107

Slide 107 text

Vraagt uus nie voe de programmeren in Magento

Slide 108

Slide 108 text

Mo we kun’n godverdomme Magento serieus doen affeceren

Slide 109

Slide 109 text

No content

Slide 110

Slide 110 text

Merci hé!