在Rails应用程序中为每个Passenger进程创建单独的日志

时间:2013-05-08 17:42:08

标签: ruby-on-rails memory logging passenger

我正在尝试确定高应用服务器实例内存使用率的原因,为此,我需要为每个正在运行的Passenger进程(例如,production_18204.log)单独记录日志。有没有一种简单的方法在Rails应用程序中配置它?感谢。

1 个答案:

答案 0 :(得分:0)

要记录每个请求中进程使用的内存,请使用以下代码。

def log_memory_usage
  mem_usage = `ps -o rss= -p #{ Process.pid }`.to_i
  if logger
    logger.info("[MEMORY USAGE]: #{ number_to_human_size(mem_usage) } | PID: #{ Process.pid } | CONTROLLER: #{ controller_name } | ACTION: #{ action_name }")
  end
end

在基础或应用程序控制器中将此操作用作之前的操作。请包含ActionView::Helpers::NumberHelper以使number_to_human_size有效。

礼貌:https://github.com/binarylogic/memorylogic