Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
WEB  CACHE korzyść dla użytkowników, ratunek dla serwerów   Mariusz Tonkowicz
Agenda <ul><li>Czym jest cache? </li></ul><ul><li>Po co buforować? </li></ul><ul><li>Podstawowe techniki cachowania </li><...
Czym jest cache? Jest to mechanizm polegający na  pobieraniu danych  ze źródła o dłuższym czasie dostępu (bądź niższej prz...
Po co buforować? <ul><li>przyspieszenie wczytywania stron </li></ul><ul><li>redukcja obciążenia serwera (serwera www, serw...
Podstawowe techniki cachowania <ul><li>cachowanie całych dokumentów HTML </li></ul><ul><li>cachowanie fragmentaryczne (blo...
 
Podstawowe techniki cachowania <ul><li>cachowanie całych dokumentów HTML </li></ul><ul><li>cachowanie fragmentaryczne (blo...
 
Podstawowe techniki cachowania <ul><li>cachowanie całych dokumentów HTML </li></ul><ul><li>cachowanie fragmentaryczne (blo...
 
Co jeśli strona jest dynamiczna? <ul><li>refreshing – odświerzanie cache po zmianach </li></ul><ul><li>TTL (time to live) ...
Po co? Pzecież baza to pliki… <ul><li>Czas odczytu z bazy  = </li></ul><ul><li>czas dostępu do plików + </li></ul><ul><li>...
Podstawowe techniki cachowania <ul><li>cachowanie całych dokumentów HTML </li></ul><ul><li>cachowanie fragmentaryczne (blo...
 
Zastosowanie (Co? Kiedy?) <ul><li>SQL </li></ul><ul><li>wszelkie zapytania typu SELECT powtarzające się przy każdym odświe...
Przecież mieliśmy korzystać z pamięci o lepszych parametrach? Co za różnica? <ul><li>zyskujemy czas potrzebny na parsowani...
Nic za darmo… <ul><li>serwis traci na dynamice </li></ul><ul><li>zwiększone zapotrzebowanie na dysk </li></ul>Czy warto? <...
Test <ul><li>Apache Benchmark </li></ul><ul><li>index.php = ok. 30 zapytań SQL / request </li></ul><ul><li>Polecenie: </li...
Bez cache
 
Wykorzystując cache
 
Wniosek z testu? <ul><li>5 x większa wydajność serwera z wykorzystaniem cache! </li></ul><ul><li>5 x więcej użytkowników d...
Pytania?
Upcoming SlideShare
Loading in …5
×

Web Cache

3,354 views

Published on

Prezentacja Mariusza Tonkowicza.

Published in: Technology, Education
  • Dating for everyone is here: ❤❤❤ http://bit.ly/2F4cEJi ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Sex in your area is here: ♥♥♥ http://bit.ly/2F4cEJi ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Web Cache

  1. 1. WEB CACHE korzyść dla użytkowników, ratunek dla serwerów Mariusz Tonkowicz
  2. 2. Agenda <ul><li>Czym jest cache? </li></ul><ul><li>Po co buforować? </li></ul><ul><li>Podstawowe techniki cachowania </li></ul><ul><li>Zastosowanie (Co? Kiedy?) </li></ul><ul><li>Test </li></ul><ul><li>Pytania, dyskusja </li></ul>
  3. 3. Czym jest cache? Jest to mechanizm polegający na pobieraniu danych ze źródła o dłuższym czasie dostępu (bądź niższej przepustowości) oraz przechowywaniu danych w pamięci o lepszych parametrach. Cache ma umożliwić szybszy dostęp do przechowywanych danych.
  4. 4. Po co buforować? <ul><li>przyspieszenie wczytywania stron </li></ul><ul><li>redukcja obciążenia serwera (serwera www, serwera baz danych) </li></ul><ul><li>zmniejszenie generowanego transferu (obniżenie kosztów hostingu) </li></ul><ul><li>możliwość „obsłużenia” większej ilości użytkowników </li></ul>
  5. 5. Podstawowe techniki cachowania <ul><li>cachowanie całych dokumentów HTML </li></ul><ul><li>cachowanie fragmentaryczne (blokowe) </li></ul><ul><li>cachowanie rezultatów zapytań do bazy </li></ul><ul><li>proxy (HTML+zdjęcia+CSS+JS) </li></ul>
  6. 7. Podstawowe techniki cachowania <ul><li>cachowanie całych dokumentów HTML </li></ul><ul><li>cachowanie fragmentaryczne (blokowe) </li></ul><ul><li>cachowanie rezultatów zapytań do bazy </li></ul><ul><li>proxy (HTML+zdjęcia+CSS+JS) </li></ul>
  7. 9. Podstawowe techniki cachowania <ul><li>cachowanie całych dokumentów HTML </li></ul><ul><li>cachowanie fragmentaryczne (blokowe) </li></ul><ul><li>cachowanie rezultatów zapytań do bazy </li></ul><ul><li>proxy (HTML+zdjecia+CSS+JS) </li></ul>
  8. 11. Co jeśli strona jest dynamiczna? <ul><li>refreshing – odświerzanie cache po zmianach </li></ul><ul><li>TTL (time to live) – czas „życia” pliku cache </li></ul>
  9. 12. Po co? Pzecież baza to pliki… <ul><li>Czas odczytu z bazy = </li></ul><ul><li>czas dostępu do plików + </li></ul><ul><li>czas operacji odczytu/łączenia + </li></ul><ul><li>czas operacji sortowania/grupowania + </li></ul><ul><li>czas operacji filtrowania, itp. </li></ul><ul><li>Czas odczytu z cache = </li></ul><ul><li>czas dostępu do plików  </li></ul><ul><li>Zyskujemy czas poświęcony na operacje! </li></ul><ul><li>Oszczędzamy moc potrzebną na ich przeprowadzenie! </li></ul>
  10. 13. Podstawowe techniki cachowania <ul><li>cachowanie całych dokumentów HTML </li></ul><ul><li>cachowanie fragmentaryczne (blokowe) </li></ul><ul><li>cachowanie rezultatów zapytań do bazy </li></ul><ul><li>proxy (HTML+zdjecia+CSS+JS) </li></ul>
  11. 15. Zastosowanie (Co? Kiedy?) <ul><li>SQL </li></ul><ul><li>wszelkie zapytania typu SELECT powtarzające się przy każdym odświeżeniu strony </li></ul><ul><li>strony HTML </li></ul><ul><li>często odwiedzane podstrony z rzadko aktualizowaną treścią </li></ul><ul><li>wyjątkowo zasobożerne podstrony </li></ul><ul><li>fragmenty stron </li></ul><ul><li>jeśli nie ma możliwości cachowania całej strony </li></ul><ul><li>statyczne elementy stron (menu, stopka, itp.) </li></ul><ul><li>Nie cachujemy zdjęć, css, js itp. !!! </li></ul>
  12. 16. Przecież mieliśmy korzystać z pamięci o lepszych parametrach? Co za różnica? <ul><li>zyskujemy czas potrzebny na parsowanie skryptu </li></ul><ul><li>zyskujemy czas poświęcony na odczyt z bazy danych </li></ul><ul><li>lepsze parametry? – memcached (cache do RAMu) </li></ul>
  13. 17. Nic za darmo… <ul><li>serwis traci na dynamice </li></ul><ul><li>zwiększone zapotrzebowanie na dysk </li></ul>Czy warto? <ul><li>Przekonajmy się…  </li></ul>
  14. 18. Test <ul><li>Apache Benchmark </li></ul><ul><li>index.php = ok. 30 zapytań SQL / request </li></ul><ul><li>Polecenie: </li></ul><ul><li>ab –n 10000 –c 100 –k http://localhost/index.php </li></ul><ul><li>n  - ilość zapytań </li></ul><ul><li>c  - ilość zapytań w tym samym czasie </li></ul><ul><li>k  - wymusza użycie stałego połączenia - HTTP KeepAlive </li></ul><ul><li>Spowoduje ono pobranie pliku index.php z serwera 10000 razy, przy czym jednocześnie będzie przeprowadzanych 100 połączeń. </li></ul>
  15. 19. Bez cache
  16. 21. Wykorzystując cache
  17. 23. Wniosek z testu? <ul><li>5 x większa wydajność serwera z wykorzystaniem cache! </li></ul><ul><li>5 x więcej użytkowników do obsłużenia </li></ul><ul><li>oszczędność sprzętu, transferu, co przekłada się na oszczędność $$$ </li></ul>
  18. 24. Pytania?

×