Reducing memory usage

From rsyslog wiki
Jump to: navigation, search

rsylsog is a (potentially massively) multi-threaded syslogd. Each of the threads requires a runtime stack. Rsyslog uses no specific stack allocation and sticks with the OS default. Seen in practice have stack allocations of 8 to 10 MB per thread. In a process trace, this can look like a memory leak.

As of my understanding, the reserved stack is not placing any demand other than virtual address space on the system. So on a usual machine, it should have no impact at all. Rsyslog should be able to work with a much smaller stack. Without testing, 1 to 2 MB sound like well enough. You may even come by with less. You can limit the default stack size (e.g. by the ulimit command or by a custom build) to reduce the overall picture. This may be useful especially for embedded systems.

This issue was raised via a forum thread. See it for more details: