mirror of https://github.com/k3s-io/k3s
![]() The current DockerFile build an image using td-agent package but it let the service run with the default memory allocator provided by glibc. In high load environments, is highly required to use a customized memory allocator such as Jemalloc. Otherwise the service will face a high memory fragmentation ending up in 'high memory' usage from a monitoring perspective. td-agent package by default install Jemalloc and set the LD_PRELOAD environment variable through it init script, but since the service is launched through Docker the env variable needs to be set manually. After this patch, when running td-agent container image now is possible to see that Jemalloc is used: root@monotop:/proc/18810# cat maps |grep jemall 7f251eddd000-7f251ee1b000 ... /opt/td-agent/embedded/lib/libjemalloc.so.2 7f251ee1b000-7f251f01b000 ... /opt/td-agent/embedded/lib/libjemalloc.so.2 7f251f01b000-7f251f01d000 ... /opt/td-agent/embedded/lib/libjemalloc.so.2 7f251f01d000-7f251f01e000 ... /opt/td-agent/embedded/lib/libjemalloc.so.2 For a reference about the memory usage difference between malloc v/s jemalloc please refer to the following chart: https://goo.gl/dVYTmw Signed-off-by: Eduardo Silva <eduardo@treasure-data.com> |
||
---|---|---|
.. | ||
Dockerfile | ||
Makefile | ||
README.md | ||
build.sh | ||
td-agent.conf |
README.md
Collecting Docker Log Files with Fluentd and Elasticsearch
This directory contains the source files needed to make a Docker image that collects Docker container log files using Fluentd and sends them to an instance of Elasticsearch. This image is designed to be used as part of the Kubernetes cluster bring up process. The image resides at DockerHub under the name kubernetes/fluentd-elasticsearch.