Your SlideShare is downloading. ×
0
Optimalizace výkonu  webových aplikací Michal Špaček, Skype;  #4IT445 2011 , Praha @spazef0rze, www.michalspacek.cz
Optimalizace výkonu = zvyšování rychlosti <ul>Slide  </ul>
Z tohoto <ul>Slide  </ul>
uděláme tohle <ul>Slide  </ul>
nebo aspoň tohle <ul>Slide  </ul>
Zvyšování rychlosti  dřívější zobrazení
< 5 sec Stránku zobrazit do 5 vteřin
1 milión požadavků za den Při dané zátěži
Jak měřit dobu zobrazení?
<ul>Slide  </ul>
 
<ul>Slide  </ul>
Jak zrychlit?
vizuálně <ul>Slide  </ul>
Pomocí animací „ zrychlíme“ načítání
Někdy i několikanásobně <ul>Slide  </ul>
Jak opravdu zrychlit?
CSS Sprites Snížit počet HTTP požadavků pomocí
Logo je součástí jednoho souboru s mnoha dalšími ikonami <ul>Slide  </ul>
<ul>Slide  </ul>
Které jsou vybírány pomocí CSS <ul>Slide  </ul>
CDN Content Delivery Network
Facebook používá CDN pro statické soubory <ul>Slide  </ul>
Legenda: Původní server Uzel s kopií dat Návštěvník Spojení wpbeginner.com Takto funguje CDN <ul>Slide  </ul>
Poskytovatelé CDN
Cache hlavičky v HTTP Pro statický obsah řeší HTTP server Pro správnou funkci nejen CDN a Sprites
Last-Modified If-Modified-Since V HTTP odpovědi V HTTP dotazu, řeší CDN
ETag If-None-Match V HTTP odpovědi V HTTP dotazu, řeší CDN
Content-Length Content-Type Lze poslat více požadavků v jednom spojení Umm, prostě správně říci, co posílám za data
http://www.slideshare.net/spaze/caching-strategies Pro víc info o HTTP cache viz moje prezentace
Zrychlení dotazů do databáze
Je třeba použít indexy <ul>Slide  </ul>
EXPLAIN SELECT … Prováděcí plán nám poví, jestli se indexy používají Plán zjistíme pomocí SQL příkazu  EXPLAIN
Výstup <ul>Slide  </ul>
Aplikační cache memcached, APC
Ukládání výsledků dotazů do memcached <ul>Slide  </ul>
PHP extenze, lze cachovat např. konfiguraci z ini/xml souborů (také opcode cache) <ul>Slide  </ul>
na více serverů Rozložení zátěže Více serverů pro db Více serverů pro aplikaci Více serverů pro data (CDN) <ul>Slide  </ul>
Pomalé/nejisté operace Odesílání mailů Převod IP na jméno (DNS)
pomocí externího programu, aby se nezpomalovalo zobrazení stránky Provádět asynchronně
Rychlost není VŠE <ul>Slide  </ul>
Bezpečnost! <ul>Slide  </ul>
Mohou snížit výkon, posílají se dva dotazy (připrav a vykonej), ale ochrání proti SQL Injection Prepared statements
Poté vykonání, kde se pošlou pouze data, která se na serveru dosadí na místo otazníků INSERT INTO table (name, price) VALU...
<ul>Díky za pozornost! Michal Špaček, @spazef0rze http://jobs.skype.com/ </ul>
Upcoming SlideShare
Loading in...5
×

Optimalizace výkonu webových aplikací

2,566

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,566
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
16
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Optimalizace výkonu webových aplikací"

  1. 1. Optimalizace výkonu webových aplikací Michal Špaček, Skype; #4IT445 2011 , Praha @spazef0rze, www.michalspacek.cz
  2. 2. Optimalizace výkonu = zvyšování rychlosti <ul>Slide </ul>
  3. 3. Z tohoto <ul>Slide </ul>
  4. 4. uděláme tohle <ul>Slide </ul>
  5. 5. nebo aspoň tohle <ul>Slide </ul>
  6. 6. Zvyšování rychlosti dřívější zobrazení
  7. 7. < 5 sec Stránku zobrazit do 5 vteřin
  8. 8. 1 milión požadavků za den Při dané zátěži
  9. 9. Jak měřit dobu zobrazení?
  10. 10. <ul>Slide </ul>
  11. 12. <ul>Slide </ul>
  12. 13. Jak zrychlit?
  13. 14. vizuálně <ul>Slide </ul>
  14. 15. Pomocí animací „ zrychlíme“ načítání
  15. 16. Někdy i několikanásobně <ul>Slide </ul>
  16. 17. Jak opravdu zrychlit?
  17. 18. CSS Sprites Snížit počet HTTP požadavků pomocí
  18. 19. Logo je součástí jednoho souboru s mnoha dalšími ikonami <ul>Slide </ul>
  19. 20. <ul>Slide </ul>
  20. 21. Které jsou vybírány pomocí CSS <ul>Slide </ul>
  21. 22. CDN Content Delivery Network
  22. 23. Facebook používá CDN pro statické soubory <ul>Slide </ul>
  23. 24. Legenda: Původní server Uzel s kopií dat Návštěvník Spojení wpbeginner.com Takto funguje CDN <ul>Slide </ul>
  24. 25. Poskytovatelé CDN
  25. 26. Cache hlavičky v HTTP Pro statický obsah řeší HTTP server Pro správnou funkci nejen CDN a Sprites
  26. 27. Last-Modified If-Modified-Since V HTTP odpovědi V HTTP dotazu, řeší CDN
  27. 28. ETag If-None-Match V HTTP odpovědi V HTTP dotazu, řeší CDN
  28. 29. Content-Length Content-Type Lze poslat více požadavků v jednom spojení Umm, prostě správně říci, co posílám za data
  29. 30. http://www.slideshare.net/spaze/caching-strategies Pro víc info o HTTP cache viz moje prezentace
  30. 31. Zrychlení dotazů do databáze
  31. 32. Je třeba použít indexy <ul>Slide </ul>
  32. 33. EXPLAIN SELECT … Prováděcí plán nám poví, jestli se indexy používají Plán zjistíme pomocí SQL příkazu EXPLAIN
  33. 34. Výstup <ul>Slide </ul>
  34. 35. Aplikační cache memcached, APC
  35. 36. Ukládání výsledků dotazů do memcached <ul>Slide </ul>
  36. 37. PHP extenze, lze cachovat např. konfiguraci z ini/xml souborů (také opcode cache) <ul>Slide </ul>
  37. 38. na více serverů Rozložení zátěže Více serverů pro db Více serverů pro aplikaci Více serverů pro data (CDN) <ul>Slide </ul>
  38. 39. Pomalé/nejisté operace Odesílání mailů Převod IP na jméno (DNS)
  39. 40. pomocí externího programu, aby se nezpomalovalo zobrazení stránky Provádět asynchronně
  40. 41. Rychlost není VŠE <ul>Slide </ul>
  41. 42. Bezpečnost! <ul>Slide </ul>
  42. 43. Mohou snížit výkon, posílají se dva dotazy (připrav a vykonej), ale ochrání proti SQL Injection Prepared statements
  43. 44. Poté vykonání, kde se pošlou pouze data, která se na serveru dosadí na místo otazníků INSERT INTO table (name, price) VALUES (?, ?) Příprava dotazu, místo hodnot otazníky
  44. 45. <ul>Díky za pozornost! Michal Špaček, @spazef0rze http://jobs.skype.com/ </ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×