2014-02-14 34 views
4

它能否在autoflush_log设置为true,具有较高的内存利用率?高内存占用,autoflushing日志

我有这样

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语句。所以我设置了日志级别信息

config.log_level = :info 

但加入上述行导致麒麟进程占用过多内存,机器运行内存

非常高,然后我加入这行

内存利用率正常。

任何人都可以看到连接?为什么autoflushing会导致高内存使用率?

+0

您如何测量内存使用情况? 'config.autoflush_log = false'和'config.autoflush_log = true'之间的内存使用有什么区别?设置'config.autoflush_log = true'应该稍微增加CPU活动,但应该通过不缓冲输出来减少内存使用量。除非您有高活动应用程序,否则更改应该非常少。 – hwatkins

回答

1

一般来说,与任何IO操作一样,写入文件是一项昂贵的操作。这会导致其他问题,例如,我记录多少会导致系统减速?我登录哪个文件系统,共享等?

你看过日志吗?是否有例外被提出?你的日志有多大?什么速度?

首先,我想看看AT的被记录什么,在这这种情况的发生率。其次,如果日志记录正常但内存利用率很高,我会将日志记录下来进一步调查。

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

config.log_level = :warn 

没有设置autoflush_log。

当系统处于高,我想看看什么是“顶”告诉我,以及在/ var/log/syslog的

的替代工具来“顶”是“HTOP”。它为您提供了更多信息(更容易理解)以及高度可配置性。 http://hisham.hm/htop/