2014-02-14 7 views
4

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 문을 기록하고있다. 그래서 나는 정보

config.log_level = :info 

에 대한 로그 수준을 설정하지만, 위의 줄이 너무 많은 메모리를 복용 유니콘 프로세스의 결과 추가 및 기계 메모리

을 매우 높은 실행 한 후 나는이 줄을 추가

그리고 메모리 사용률이 정상적으로되었습니다.

누구나 연결을 볼 수 있습니까? 왜 autoflushing이 높은 메모리 사용률을 유발합니까?

+0

어떻게 메모리 사용량을 측정하고 있습니까? 'config.autoflush_log = false'와'config.autoflush_log = true' 사이의 메모리 사용량의 차이점은 무엇입니까? 'config.autoflush_log = true'를 설정하면 CPU 활동이 약간 증가하지만 출력을 버퍼링하지 않음으로써 메모리 사용을 약간 줄여야합니다. 활동량이 많은 응용 프로그램을 사용하지 않는 한 변경은 매우 미미해야합니다. – hwatkins

답변

1

일반적으로 말해서 파일에 쓰는 것은 IO 작업처럼 값 비싼 작업입니다. 이로 인해 시스템이 느려지도록 로깅이 얼마나되는지 등의 다른 질문이 생깁니다. 어떤 파일 시스템에 로깅하고, 공유합니까?

로그를 보았습니까? 예외가 제기되고 있습니까? 로그가 얼마나 커지나요? 그리고 어떤 속도로?

먼저, 기록되는 내용과 이것이 발생하는 속도를 살펴 보겠습니다. 두 번째, 로깅이 정상이지만 mem 활용도가 높으면 추가로 조사하기 위해 로깅을 가져옵니다.

주먹. 경고와 동등하거나 동등한 내용 만 기록하십시오.

config.log_level = :warn 

autoflush_log를 설정하지 마십시오.

시스템이 높은 경우, 내가

"최고", "htop"입니다에 대한 대안 유틸리티 시스템 로그/로그/var에 /뿐만 아니라 나에게 말한다 "최고"무엇을 ​​볼 것입니다. 그것은 당신에게 더 많은 정보를 (눈을 쉽게)뿐만 아니라 고도로 구성 가능한 찾을 수 있습니다. http://hisham.hm/htop/