ruby-on-rails – 由于自动刷新日志而导致内存利用率过高

如果autoflush_log设置为true,是否可以具有高内存利用率?

我有这样的自定义生产环境(临时)设置

require Rails.root.join("config/environments/production")

Calamus::Application.configure do
  config.action_mailer.default_url_options = {:protocol => 'https', :host => xx.xx.xx.xx }
end

这是记录sql语句.所以我将日志级别设置为info

config.log_level = :info

但是添加上述行会导致独角兽进程占用太多内存并且机器内存运行非常高

当我添加这一行

config.autoflush_log = false

内存利用率变得正常.
任何人都可以看到连接?为什么autoflushing会导致高内存利用率?

最佳答案
一般来说,写入文件与任何IO操作一样昂贵.这导致了其他问题,例如,我记录了多少会导致系统速度下降?我登录的文件系统是什么,是共享的,等等?

你看过日志了吗?是否有异常被提出?你的日志有多大?以什么速度?

首先,我会看一下记录的内容以及发生这种情况的速度.
其次,如果日志记录正常但内存利用率很高,我会将记录下来进一步调查.

拳头.只记录任何高于或等于警告的内容

config.log_level = :warn

没有设置autoflush_log.

当系统很高时,我会看看“top”告诉我什么以及/ var / log / syslog

“顶部”的替代实用程序是“htop”.它为您提供了更多信息(眼睛更容易)以及高度可配置性.
http://hisham.hm/htop/

转载注明原文:ruby-on-rails – 由于自动刷新日志而导致内存利用率过高 - 代码日志