Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Zend_Cache
Forum PHP.pl > Forum > PHP > Frameworki
noxxan
Witam,

Spotkał mnie pewien problem przy budowaniu mechanizmów cache dla dużego serwisu,
opartego o Zend Framework w wersji bodajże 1.8 (1.8.2 bodajże).

Czytając dokumentację ZF i chcąc skorzystać z biblioteki Zend_Cache doszedłem do tego,
żeby cache'ować strony w całości na pewien okres czasu - powiedzmy 5 minut, korzystając
z frontendu Page (jako backend - File). Do tego jeszcze wynik każdej metody z każdego
modelu jest cache'owany i czyszczony na żądanie (tj. taki cache ma długą date ważności,
ale przy zmianach w bazie jest czyszczony i tworzony na nowo) - w tym przypadku korzystam
z frontendu Core i backendu File.

Problem pojawia sie przy sporej ilości scache'owanych danych szczególnie w tym drugim przypadku,
kiedy wyciągam dane z modelu (może być to nawet 20-30 krotne wywołanie metody load z Zend_Cache).
PHP uruchomione jako fast-cgi przy każdym procesie potrafi zeżereć 100% procesora (a sytuacja taka trwa nawet kika sekund) - co zabija serwis.

Na koniec kawałek konfiguracji cache'a. Być może coś tutaj jest nie tak - a być może wina leży
po stronie konfiguracji samego serwera - to chciałbym ustalić, tylko nie do końca jestem w stanie
to zrobić na chwilę obecną.. a być może ktoś już podobny temat rozdmuchał.

  1. # konfiguracja cacheowania calych stron
  2.  
  3. cache_page.frontend = Page
  4. cache_page.backend = File
  5.  
  6. cache_page.frontendOptions.caching = true
  7. cache_page.frontendOptions.lifetime = 300
  8. cache_page.frontendOptions.debug_header = false
  9.  
  10. cache_page.frontendOptions.default_options.cache = true
  11. cache_page.frontendOptions.default_options.cache_with_get_variables = true
  12. cache_page.frontendOptions.default_options.cache_with_post_variables = true
  13. cache_page.frontendOptions.default_options.cache_with_cookie_variables = true
  14. cache_page.frontendOptions.default_options.make_id_with_get_variables = true
  15. cache_page.frontendOptions.default_options.make_id_with_post_variables = true
  16. cache_page.frontendOptions.default_options.make_id_with_cookie_variables = true
  17.  
  18. cache_page.backendOptions.cache_dir = /cache_page
  19. cache_page.backendOptions.hashed_directory_level = 1
  20. cache_page.backendOptions.hashed_directory_umask = 0755
  21. cache_page.backendOptions.cache_file_umask = 0755
  22.  
  23. # konfiguracja cacheowania modeli
  24.  
  25. cache.frontend = Core
  26. cache.backend = File
  27.  
  28. cache.frontendOptions.caching = true
  29. cache.frontendOptions.lifetime = 2592000
  30. cache.frontendOptions.automatic_serialization = true
  31.  
  32. cache.backendOptions.cache_dir = /cache_db
  33. cache.backendOptions.hashed_directory_level = 3
  34. cache.backendOptions.hashed_directory_umask = 0755
  35. cache.backendOptions.cache_file_umask = 0755


Pozdrawiam
seth-kk
jesli to mozliwe trzymaj cache w ramie zamiast na dysku
czy cache dla calych modeli napewno ma sens w tej sytuacji?
moze czas pomyslec o wydajnieszej maszynie lub lepszej organizacji projektu
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.