Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Onlineshop Profiling

Onlineshop Profiling

oder wie finde ich den Container, der meinen Shop in Schieflage bringt!

Tim Schiemann
Team Lead Customer Operations, SysEleven GmbH

Avatar for SysEleven

SysEleven

August 30, 2019
Tweet

More Decks by SysEleven

Other Decks in Technology

Transcript

  1. Onlineshop Profiling oder wie finde ich den Container, der meinen

    Shop in Schieflage bringt! Tim Schiemann Team Lead Customer Operations, SysEleven GmbH
  2. engage · build · run Agenda 3 1. Vorbereitung ist

    alles 2. Load Balancer 3. PHP Applikation Profiling 4. Datenbank Profiling
  3. engage · build · run 5 Was ist eigentlich das

    Problem? • Shop langsam • langsamer Shop • Shop hängt • Webseite langsam • Shop geht nicht • Die Seite ist down
  4. engage · build · run 10 Caching Sinnvolles Caching kann

    die Last verringern • static File Cache (nginx) • Redis • Varnish • CDN
  5. engage · build · run 12 Load Balancing Methoden •

    Round Robin • Least connection • Least Time (nginx Plus)
  6. engage · build · run 14 PHP • Logs prüfen

    • Aktuelle Versionen • PHP7 bis zu 50% schneller • PHP Cache (OpCache / ACPu)
  7. engage · build · run 15 Tideways? • PHP Extension

    • tideways-daemon • Tideways Server • https://tideways.io
  8. engage · build · run 22 DB Parameter • aktuelle

    Software installieren • CPU Usage • Buffer korrekt gesetzt? • Query Cache? (ausgebaut >MySQL 8 ) • Read / Write Queries splitten (z,b, proxy SQL)
  9. engage · build · run 26 Query Cache Der Query

    Cache kann die Last enorm verringern
  10. engage · build · run 28 Query Cache • kann

    die CPU Last auf der DB verringern • zu großer Query Cache kann zu Locks führen • Index benutzen! Zusammenfassung
  11. engage · build · run 29 Read / Write splitting

    • Read Queries auf eigene Instanz auslagern. (Exporte) • entlasten Master und Shop bleibt online • via Anwendung oder ProxySQL
  12. engage · build · run 30 MySQL Query Profling •

    alle Queries loggen • analyse der Queries (percona Toolkit) • Empfehlungen ableiten
  13. engage · build · run 35 Zusammenfassung • Ohne Daten

    bin ich Blind • Caching am LB kann die Last reduzieren • Tideways hilft beim Erkennen der Flaschenhälse • Verteilung der Last auf mehrer Systeme • Query Cache kann die DB entlasten • Besser ist es einen Index zu nutzen • SysEleven hilft die Probleme zu lösen ;)