5

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

しかし、上記の行を追加すると、Unicorn プロセスが大量のメモリを消費し、マシンのメモリが非常に多くなりました。

この行を追加したとき

config.autoflush_log = false

メモリ使用率が正常になりました。誰でも接続を見ることができますか?autoflushingメモリ使用率が高くなるのはなぜですか?

4

1 に答える 1

2

一般的に言えば、ファイルへの書き込みは、他の IO 操作と同様にコストのかかる操作です。これは、システムの速度低下の原因となるログの量など、他の質問につながります。どのファイル システムにログを記録しているか、共有されているかなど。

ログを見ましたか?発生している例外はありますか? ログはどのくらい大きくなりますか? で、レートは?

まず、ログに記録されている内容と、その発生率を調べます。2 つ目は、ロギングは正常でメモリ使用率が高い場合は、さらに調査するためにロギングを停止します。

拳。警告以上のもののみをログに記録する

config.log_level = :warn

autoflush_log を設定せずに。

システムの負荷が高いときは、"top" のメッセージと /var/log/syslog を確認します。

「top」の代替ユーティリティは「htop」です。それは、私が見つけたより多くの情報を提供し (目に優しく)、高度に構成可能です。 http://hisham.hm/htop/

于 2014-02-22T17:37:48.347 に答える