Uruchomiłem właśnie duet Nginx+Thin z 16 procesami Thina i zauważyłem dziwną rzecz: procesy Thina mają osobny cache. Czyli gdy otwieram stronę główną aplikacji, dopiero za 16 razem zaczyna wczytywać się zawsze z cache.
Czy idzie ustawić, by procesy Thina miały wspólny cache? Dokumentacja Thina jest dość uboga.
A może ktoś chociaż wie, czy Mongrel też się tak zachowuje?
O jakim rodzaju cache’u mówisz?
Chodzi mi o cache blokowe. O takie:
<% cache "right-block-2" do %>
...
...
...
<% end %>
Zgaduję, że odpaliłeś thina w trybie development, który to używa MemoryStore. Thin nic ma z tym nic wspólnego.
Odpaliłem w trybie production.
Config trybu wygląda tak:
[code=“ruby”]# The production environment is meant for finished, “live” apps.
Code is not reloaded between requests
config.cache_classes = true
Full error reports are disabled and caching is turned on
config.action_controller.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.action_view.cache_template_loading = true
See everything in the log (default is :info)
config.log_level = :debug
Use a different logger for distributed setups
config.logger = SyslogLogger.new
Use a different cache store in production
config.cache_store = :mem_cache_store
Enable serving of images, stylesheets, and javascripts from an asset server
config.action_controller.asset_host = “http://assets.example.com”
Disable delivery errors, bad email addresses will be ignored
config.action_mailer.raise_delivery_errors = false
Enable threaded mode
config.threadsafe![/code]
Nie wiem jaki jest domyślny store, ale Radarek ma rację - thin nie ma z tym nic wspólnego. Postaw na serwerze memcache’a i ustaw:
config.cache_store = :mem_cache_store
Wtedy wszystkie instancje aplikacji będą korzystać z jednego serwera memcached.
[quote=drogus]Nie wiem jaki jest domyślny store, ale Radarek ma rację - thin nie ma z tym nic wspólnego. Postaw na serwerze memcache’a i ustaw:
config.cache_store = :mem_cache_store
Wtedy wszystkie instancje aplikacji będą korzystać z jednego serwera memcached.[/quote]
Dzięki, pomogło. Serwer ma dużo pamięci, więc to nawet lepiej, że używa teraz memcached.