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,252 views

Published on

Prezentacja Mariusza Tonkowicza.

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,252
On SlideShare
0
From Embeds
0
Number of Embeds
58
Actions
Shares
0
Downloads
33
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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?

×