Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Ускоряване на World Wide Wait

1 958 vues

Publié le

Презентация на Петър Николов - Ускоряване на World Wide Wait на SEO конференция 2015

Publié dans : Internet

Ускоряване на World Wide Wait

  1. 1. Ускоряване на World Wide Wait
  2. 2. Здравейте Петър Николов Peter Nikolow Можете да ме намерите: twitter.com/peternikolow facebook.com/peter.nikolow linkedin.com/in/peternikolow plus.google.com/+peternikolow
  3. 3. “We must deliver and render the above the fold (ATF )content in under one second, which allows the user to begin interacting with the page as soon as possible https://developers.google.com/speed/docs/insights/mobile
  4. 4. Рендиране на мобилна страница за 1 секунда DNS преобразуване Рендиране от браузъра Сървърна обработка HTTP заявка и отговор TCP свързване 200 ms 200 ms200 ms 200 ms 200 ms 600 ms идващи от 3G мрежата които не може да бъдат оптимизирани 400 ms които може да бъдат оптимизирани от Вас https://developers.google.com/speed/docs/insights/mobile
  5. 5. Да поговорим протоколно? С протоколите по протоколски
  6. 6. 1. DNS Пътят към бързия WEB започва със DNS
  7. 7. DNS ▷ премахване low TTL минимум ден TTL ▷ географски близо до клиентите ▷ избягване на екзотиките .ly, .tv, .guru ▷ ненадежни регистратори
  8. 8. DNS ▷ капацитет
  9. 9. DNS ▷ избягване на cname записи dig +norec +trace cdn. mobiliodevelopment.com
  10. 10. DNS ▷ резервен план
  11. 11. 2. TCP Нека да ускорим мрежовия протокол
  12. 12. TCP ▷ създаден преди 40 години - 1974 ▷ TCP slow start ○ IW3 -> IW10
  13. 13. TCP ▷ TCP slow start
  14. 14. TCP ▷ TCP efficiency ○ Nagle -> TCP_NODELAY ○ TCP_CORK -> TCP_CORK OFF ▷ Retransmission timeout (RTO) ○ 3 s -> 1s ▷ PRR - proportional rate reduction ▷ TLP - tail lost probe ▷ ER - early retransmit
  15. 15. TCP ▷ TCP handshake ○ 3 way handshake client server SYN ACK Request SYN-ACK Response
  16. 16. TCP ▷ New TCP handshake ○ TCP fast open ○ TFO cookie client server SYN + TFO cookie request ACK SYN- ACK+ TFO cookie SYN + TFO + Request SYN-ACK Request sent to app ACK Response ...
  17. 17. 3. HTTP Проблеми във приложения протокол
  18. 18. HTTP ▷ Версия 1.0 създадена 89/90 ▷ Версия 1.1 създадена 95 ▷ изцяло текстов ▷ може да се компресира отговора ▷ създава много връзки към сървъра
  19. 19. HTTP типове на връзката Close връзката се затваря Keep-alive постоянна връзка Pipeline постоянна връзка на стероиди client server request response close client server client server
  20. 20. HTTP/2 Вече е стандарт
  21. 21. HTTP/2 ▷ винаги включени pipeline и keep-alive ▷ компресира заявката и хедърите на отговора ▷ вече е двоичен и е само една връзка
  22. 22. HTTP/2 ▷ server hint ▷ server push ▷ приоритизиране на съдържанието
  23. 23. 27%-60% По-бързо рендира страниците във сравнение със HTTP/1.1; без криптиране на връзката 40% По-малко пакети във сравнение със HTTP/1.1 39%-55% По-бързо рендира страниците във сравнение със HTTP/1.1 (некриптирано) при криптиране https://www.chromium.org/spdy/spdy-whitepaper
  24. 24. 4. TLS Все още ли е причина за забавяне?
  25. 25. “On our production frontend machines (Google), SSL/TLS accounts for less than 1% of the CPU load, less than 10 KB of memory per connection and less than 2% of network overhead. Many people believe that SSL/TLS takes a lot of CPU time and we hope the preceding numbers will help to dispel that. https://www.imperialviolet.org/2010/06/25/overclocking-ssl.html
  26. 26. TLS ▷ SSL е мъртъв! Да живее TLS! ▷ SNI ▷ сертификати само от CA ▷ безплатни сертификати ○ StartSSL ○ Let’s encrypt
  27. 27. TLS ▷ забранете компресията ▷ TLS handshake - ECDH ▷ HSTS ○ HTTP strict transport security ▷ TLS подновяване на сесията ○ session identifiers - стар ○ session tickets - нов ▷ TLS false start ▷ OCSP stapling
  28. 28. QUIC Quick UDP Internet Connections Нов приложен протокол който може да измести TCP
  29. 29. Желязната стража зад желязната завеса
  30. 30. 5. HTTP server И обичайните заподозрени за забавянията
  31. 31. HTTP servers ▷ Apache ▷ nginx ▷ lighthttpd ▷ litespeed
  32. 32. HTTP servers ▷ .htaccess правила ○ използвайте статични правила във секцията на сървъра ▷ компресия - deflate/gzip ○ компресирайте статичните файлове ▷ редиректи ○ редирект map file ○ плъгин ▷ сървърно API за езиците ○ CGI, FastCGI, вграден модул
  33. 33. HTTP accelerators ▷ Varnish ▷ nginx reverse proxy ▷ nginx micro cache
  34. 34. PHP ▷ PHP 5.2, 5.3 са EOL ▷ PHP 5.4 тази година EOL ▷ скорост ○ по-новите версии са по-бързи ○ 5.2 -> 5.5 20%-35% по-бързи ▷ памет ○ новите версии имат по-малка консумация ○ 5.2 -> 5.5 до 50% по-малко
  35. 35. https://wordpress.org/about/stats/
  36. 36. PHP ▷ opcode cache ○ APC - до 5.4 ○ Xcache ○ Zend Opcache (PHP 5.5+) PHP Наличен в кеша? Изпълнение Обработка Компилиране Запазване Зарежданеда не
  37. 37. PHP ▷ бъдещето ○ HHVM ○ PHPNG (PHP 7)
  38. 38. PHP7 Версия 7 се очаква да излезе Юли 2015 като RC и финална Октомври 2015. Ускорението е около 100%
  39. 39. MySQL ▷ оптимизиране ○ mysqltuner
  40. 40. MySQL Версия 5.5+ е по-бърза от всички досегашни.
  41. 41. 6. Wordpress Защо се бави?
  42. 42. WordPress ▷ преминете на последната версия ▷ проверете дали темата не ви бави ○ query monitor ▷ проверете дали не ви бави плъгин ○ p3 profiler ○ query monitor
  43. 43. WordPress ▷ изключете pingbacks/trackbacks ▷ проверете за XML-RPC атаки ▷ заключете wp-login.php със парола ▷ премахнете излишните плъгини
  44. 44. WordPress ▷ използвайте по-добри версии на плъгините ▷ инсталирайте кеш ○ HCE - Martin Lazarov ○ WP Super Cache - Samuel Wood ○ W3TC - Frederick Townes ○ проверете редиректите ○ проверете 404 грешките ▷ инсталирайте плъгин за архивиране
  45. 45. WordPress DB ▷ EAV модел за съхранение ○ entity, attribute, value ▷ премахнете черновите постове ▷ премахнете спам коментарите ▷ оптимизирайте таблиците ○ SQL - optimize table
  46. 46. WordPress DB ▷ наблюдавайте внимателно следните таблици ○ wp_options ○ wp_postmeta ○ wp_commentmeta ▷ направете си тестов сървър за експерименти ○ DB 1.1Gb -> 215 Mb
  47. 47. Client side Оптимизация от клиентска страна
  48. 48. Благодаря! Въпроси? Можете да ме намерите на: @peternikolow

×