O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

WP výkon a jeho profilování

Prezentace z WP weekend 28.5.2016 - měření výkonu pomocí Blackfire.io

  • Entre para ver os comentários

  • Seja a primeira pessoa a gostar disto

WP výkon a jeho profilování

  1. 1. @smitka Lynt services s.r.o. Infrastruktura Webová řešení Marketing WP – výkon a jeho profilování Vláďa Smitka https://lynt.cz
  2. 2. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Co dnes uslyšíte? • Kde a jak hledat výkonnostní problémy • Server vs zdroje • Pár slov o serverech a síťové infrastruktuře • Ladění DB • Ladění PHP skriptů pomocí Blackfire.io • Budeme používat testovací virtuálek ve VirtualBoxu
  3. 3. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Virtuálek Na flashce: • Virtualbox • Appliance (Centos-WPweekend.ova) • Datové a konfigurační soubory • Užitečné odkazy • 1x předinstalovaný WP • Počítá s IP 192.168.33.10 • Lze využít doménu *.10.lynt.eu • = wp1.10.lynt.eu Apache 2.4 PHP 5.6 FPM 127.0.0.1:9056 PHP 7.0 FPM 127.0.0.1:9070 Port 80 Port 7080 MariaDB 5.5 MailCatcher Shell in a Box WP-CLI WPscan Datové soubory Konfigurace DB Logy Síť s hostemNAT
  4. 4. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Nastavení VBoxu
  5. 5. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. První kontakt • https://gtmetrix.com/ • http://www.webpagetest.org/
  6. 6. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Waterfall
  7. 7. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Co na serveru trvá? • Databázové dotazy • HTTP požadavky na vzdálené služby • Špatně napsaný kód, který se mnohokrát zbytečně spouští • Maily • Práce s daty na přetíženém serveru
  8. 8. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Hosting, VPS, vlastní server? 2x CPU, 4GB RAM 1x CPU, 2GB RAM 1x CPU, 2GB RAM define( 'WP_MEMORY_LIMIT', '512M' ); Pro admin: WP_MAX_MEMORY_LIMIT 1 zobrazení běžné stránky = 20-40MB
  9. 9. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Jak si otestovat, kolik server snese? • https://loader.io/ • https://loadimpact.com/ • https://www.blazemeter.com/
  10. 10. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Databázové dotazy Q: Kolik? A: Query Monitor Q: Jaké jsou dlouhodobě pomalé? A: Slowlog
  11. 11. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Ladění MySQL serveru • http://mysqltuner.com/ • Query Cache, Buffery, DB Enginy • Alternativa https://launchpad.net/mysql-tuning-primer • Další nástroje (mysqlreport) https://github.com/daniel- nichter/hackmysql.com
  12. 12. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. mysqltuner.pl slow-query-log = 1 slow-query-log-file = /var/log/mysql/slow.log long_query_time = 1 log-queries-not-using-indexes max_connections=50 query_cache_type = 1 query_cache_size = 64M query_cache_limit = 2M Při velké konkurenčnosti na multiprocesorovém systému však zdržuje!
  13. 13. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Transient API $data = tohle_trva_fakt_dlouho();
  14. 14. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Transient API $data = get_transient( 'unikatni_klic' ); if( WP_DEBUG || $data === false ) { $data = tohle_trva_fakt_dlouho(); set_transient( 'unikatni_klic', $data, DAY_IN_SECONDS ); } https://codex.wordpress.org/Transients_API
  15. 15. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. get_transient() wp-includes/options.php function get_transient( $transient ) { ... if ( wp_using_ext_object_cache() ) { $value = wp_cache_get( $transient, 'transient' ); } else { $transient_option = '_transient_' . $transient; if ( ! defined( 'WP_INSTALLING' ) ) { // If option is not in alloptions, it is not autoloaded and thus has a timeout $alloptions = wp_load_alloptions(); if ( !isset( $alloptions[$transient_option] ) ) { $transient_timeout = '_transient_timeout_' . $transient; if ( get_option( $transient_timeout ) < time() ) { delete_option( $transient_option ); delete_option( $transient_timeout ); $value = false; } } } if ( ! isset( $value ) ) $value = get_option( $transient_option ); } ... } Umí využívat Object-Cache Xcache, APC, Redis, Memcached,…
  16. 16. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Profilování PHP $start = microtime(true); // jedeme! $stop = microtime(true); error_log($stop - start); /* memory_get_peak_usage(); memory_get_usage(); */
  17. 17. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Blackfire.io https://blackfire.io/
  18. 18. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. 3 hlavní komponenty • Probe – rozšíření pro PHP • Agent – posílač dat do služby + CLI • Companion – rozšíření do Chrome pro spouštění testů • https://blackfire.io/docs/up-and-running/installation • Server ID + Token • Client ID + Token
  19. 19. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Blackfire.io – Premium na měsíc zdarma
  20. 20. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Dimenze • Wall Time • I/O Wait • CPU Time • Memory • Network • HTTP požadavky • SQL dotazy
  21. 21. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o.
  22. 22. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Když se to moc opakuje public function ziskat() { $velka_instance_neceho = new Neco(); $vystup = $velka_instance_neceho->tezko_získat(); return $vystup; } public function ziskat() { static $vystup; if (!isset($vystup)) { $velka_instance_neceho = new Neco(); $vystup = $velka_instance_neceho->tezko_ziskat(); } return $vystup; }
  23. 23. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Jak zprofilovat POST a jiné podivnosti? Blackfire lze spouštět i z příkazové řádky: blackfire curl 'data' blackfire --samples=10 run php -r 'echo "WPweekend!"; blackfire upload CPU-20160526T202602.cpuprofile (výkon js v prohlížeči) blackfire upload homepage-xdebug.out (výstup z xdebug)
  24. 24. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Testy - .blackfire.yml tests: "Homepage": path: "/" assertions: - "metrics.sql.queries.count < 30" - "main.peak_memory < 30mb" - "metrics.http.requests.count < 5"
  25. 25. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Pochlubte se svým profilem na blogu ;-) WP Oembed provider: wp_oembed_add_provider('https://blackfire.io/profiles/*', 'https://blackfire.io/oembed' );
  26. 26. Infrastruktura Webová řešení Marketing @smitka Lynt services s.r.o. Děkuji za pozornost! Dále si přečtěte: https://lynt.cz/blog/10-nejcastejsich-problemu-modernich-webu https://lynt.cz/blog/optimalizace-vykonu-webovych-aplikaci-na-co-se-zamerit

×