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
通过添加一个简单的如果-那么在自定义配置文件中过滤时,我注意到 rsyslogd 使用的内存有相当大的增加。
使用没有自定义规则的 vanilla Debian conf 文件:
VSZ RSS %MEM
51956 1400 0.0
仅通过添加一个 if-then 过滤器,rsyslogd 的内存消耗似乎就翻了一番:
VSZ RSS %MEM
117492 1420 0.0
典型的过滤器:
if $programname contains 'sshd' and $syslogfacility-text == 'auth' then /var/log/ssh_auth.log
使用地图调试时,唯一显示内存增加的进程是[ 匿名 ]。
[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
我的自定义规则有问题吗?
答案1
rsyslogd 似乎映射了一些内存页面,但实际上并未使用它们。您的 rsyslogd 占用了0.0%
或1.4 megabytes
的宝贵系统内存。您的自定义规则已添加20 kilobytes
到 rsyslogd 内存使用情况中。
虚拟内存和 Linux 内存使用行为总体上可能非常令人困惑。