Das Einhängen in PhusionPassenger::Rack::RequestHandler#process_request()
ist der einzige Mechanismus, den ich gefunden habe.
Um dies auf ähnliche Weise wie beim Unicorn OobGC zu tun, können Sie das folgende Modul verwenden:
%Vor%und rufen Sie es in einem Initialisierer mit auf:
%Vor% Sie müssen Passenger patchern. Das Ausführen eines GC.start
nach dem Übergeben einer Anfrage stellt sicher, dass die Garbage-Collection niemals stattfindet, während eine Client-Anfrage gehalten wird. Dies ist eine einzeilige Änderung, die Sie möglicherweise in Betracht ziehen, wenn Sie versuchen, die durchschnittliche Anforderungszeit zu reduzieren.
Fügen Sie in lib / phusion_passenger / abstract_request_handler.rb accept_and_process_next_request
hinzu und fügen Sie am Ende den Aufruf GC.start
mit einem geeigneten Intervall hinzu.
Siehe dieses Commit für ein Beispiel (Danke, @raphaelcm).
Tags und Links ruby ruby-on-rails passenger mod-rails