Sto tentando di eseguire la raccolta dei dati obsoleti fuori banda (una volta che una richiesta ha completato la risposta) nell'applicazione Ruby on Rails. Ho aggiunto il seguente al mio config.ru:Esaurimento della garbage collection della banda con Unicorn + Rack
# This file is used by Rack-based servers to start the application.
require ::File.expand_path('../config/environment', __FILE__)
begin
require 'unicorn/oob_gc'
rescue LoadError, NameError
end
# Out-of-band GC, runs GC after every 10th request and after the response
# has been delivered.
begin
use Unicorn::OobGC, interval=10
rescue NameError
end
run MyApp::Application
GC.start
sto guardando il mio portale NewRelic tuttavia, e la maggior parte delle transazioni web non indicare che almeno 110-150ms viene speso in media garbage collection facendo. Unicorn :: OoobGC dovrebbe farlo fuori dallo scopo della richiesta effettiva? Se lo è, perché viene visualizzato nella transazione web? In che modo il tempo speso per la raccolta dei dati obsoleti si verifica al di fuori del contesto di una richiesta Web in modo che i tempi di risposta del cliente percepiti siano più rapidi? Il tempo di CPU speso sarà sempre lo stesso poiché deve avvenire in background, tuttavia, meglio in background rispetto al mantenimento di una pipeline di richieste.