我試圖在我的Ruby on Rails應用程序中帶外執行垃圾回收(一旦請求已完成服務其響應)。我增加了以下我config.ru:用獨角獸+機架運行帶外垃圾收集
# 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
我看着我的門戶NewRelic的然而,和大多數網絡交易也表明,至少110-150ms花費平均在做垃圾回收。 Unicorn :: OoobGC是否應該在實際請求的範圍之外做到這一點?如果是這樣,爲什麼會在網絡交易中出現?我如何花費在垃圾收集上的時間發生在Web請求的上下文之外,以便感知的客戶端響應時間更快? CPU花費的時間仍然是相同的,因爲它需要在後臺進行,但是,在後臺比保留請求管道更好。