rsyslog:大内存消耗

rsyslogd 4.6.4, compiled with: FEATURE_REGEXP: Yes FEATURE_LARGEFILE: No FEATURE_NETZIP (message compression): Yes GSSAPI Kerberos 5 support: Yes FEATURE_DEBUG (debug build, slow code): No Atomic operations supported: Yes Runtime Instrumentation (slow code): No 

通过在自定义conf文件中添加一个简单的if-thenfilter,我注意到rsyslogd使用的内存有相当大的跳跃。

使用不带自定义规则的vanilla Debian conf文件:

  VSZ RSS %MEM 51956 1400 0.0 

通过添加一个if-thenfilter,rsyslogd似乎将其内存消耗加倍:

  VSZ RSS %MEM 117492 1420 0.0 

典型的filter:

 if $programname contains 'sshd' and $syslogfacility-text == 'auth' then /var/log/ssh_auth.log 

使用pmap进行debugging,显示内存增加的唯一过程是[anon]

 [anon] 24944 90480 /lib/ld-2.11.3.so 128 128 /lib/libc-2.11.3.so 3444 3444 /lib/libdl-2.11.3.so 2064 2064 /lib/libnsl-2.11.3.so 2136 2136 /lib/libnss_compat-2.11.3.so 2080 2080 /lib/libnss_files-2.11.3.so 2100 2100 /lib/libnss_nis-2.11.3.so 2092 2092 /lib/libpthread-2.11.3.so 2144 2144 /lib/librt-2.11.3.so 2080 2080 [stack] 84 84 /usr/lib/libz.so.1.2.3.4 2140 2140 /usr/lib/rsyslog/imklog.so 2072 2072 /usr/lib/rsyslog/imuxsock.so 2060 2060 /usr/lib/rsyslog/lmnet.so 2068 2068 /usr/sbin/rsyslogd 320 320 

我的自定义规则有问题吗?

rsyslogd似乎映射了一些内存页面,但实际上并没有使用它们。 您的rsyslogd正在占用您的宝贵系统内存的0.0% ,或1.4 megabytes 。 您的自定义规则添加了20 kilobytes的rsyslogd内存使用情况。

虚拟内存和Linux内存使用行为总体上可能非常混乱。