2014-11-06 3 views
0

rsyslog를 사용하여 TCP를 통해 원격 컴퓨터에 메시지를 보내고 있습니다. Java 서비스가 local4라는 syslog의 로그 작성기에 쓰고 있습니다. 메모리는 1MB부터 시작하여 4-5GB까지 증가합니다. 이 문제를 어떻게 디버그하여 Rsyslog에서 많은 메모리를 사용하고 어떻게 줄일 수 있는지 알 수는 없습니다. 어떤 도움이 좋을 것rsyslog가 막대한 메모리를 사용합니다.

$ModLoad imuxsock # provides support for local system logging 
$ModLoad imklog # provides kernel logging support 

$ModLoad imudp 
$UDPServerRun 514 

$KLogPermitNonKernelFacility on 


$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat 

$RepeatedMsgReduction on 

$FileOwner syslog 
$FileGroup adm 
$FileCreateMode 0640 
$DirCreateMode 0755 
$Umask 0022 
$PrivDropToUser syslog 
$PrivDropToGroup syslog 

auth,authpriv.*     /var/log/auth.log 
*.*;auth,authpriv.none,local4.none    -/var/log/syslog 

mail.*       -/var/log/mail.log 



$template RTFormat,"%msg%\n" 
$WorkDirectory /var/lib/rsyslog # where to place spool files 
$ActionQueueFileName fwdRuleRTLogs1 # unique name prefix for spool files 
$ActionQueueMaxDiskSpace 1g # 4gb space limit (use as much as possible) 
$ActionQueueSaveOnShutdown on # save messages to disk on shutdown 
$ActionQueueType LinkedList # run asynchronously 
$ActionResumeRetryCount -1 # infinite retries if host is down 

$MaxMessageSize 5k 
local4.* @@internal-elb.amazonaws.com:5149;RTFormat 

: 다음은 내 rsyslog.conf입니다.

+0

jmap (http://docs.oracle.com/javase/6/docs/technotes/tools/share/jmap.html)으로 힙 덤프를 만들고 Eclipse 메모리 분석기로 분석하십시오. http : // www.eclipse.org/mat/ –

+0

Java 클라이언트의 메모리 사용은 상당히 안정적이지만 계속 증가하는 rsyslog의 메모리입니다. 따라서 Java 힙 덤프가 많이 사용된다면 확실하지 않습니다. –

+0

네 말이 맞아, 내가 틀렸어. 이 경우 Java 힙 덤프가 도움이되지 않습니다. –

답변

1

이 상자는 다른 호스트의 로그를 수신합니까? 그렇지 않으면 UDP 서버를 사용할 필요가 없습니다. 로그를 수집하는 측면에서 클라이언트 또는 서버입니까?

또한 : TCP 끝점에서 로그를 수신 했습니까?

$ActionResumeRetryCount -1

을 갖는 모든 로그가 디스크에 저장하지만 서버로 발송하려고 할 때 메모리에로드되는 것을 의미합니다.

관련 문제