New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
jemalloc support - vendored in - source built in Dockerfile #788
Conversation
fluentd/Dockerfile.centos7
Outdated
| iproute && \ | ||
| yum clean all | ||
|
|
||
| RUN mkdir -p ${HOME} && \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In order for us to use downstream, why not actually vendor in the dependency instead of pulling it in via curl?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jcantrill I don't know if we can do downstream without an rpm package . . . but sure, I can vendor it in - I just didn't want to check in a big tarball into git. I suppose I could check in the uncompressed source tree, but if I'm going to do that, I should just make it a git submodule
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would prefer not to vendor the source but if that is our only recourse we should do it. Alternatively, maybe its worth us setting up the necessary repos to properly build it into an rpm. Is that something you are willing to take on?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jcantrill for downstream. separate rpm for the rhlog channel, then we just tag those builds in to build the fluentd image
|
Are we ok with this? If so, I'll remove the do-not-merge label, and someone can give it a /lgtm |
| @@ -1,14 +1,14 @@ | |||
| #!/bin/bash | |||
|
|
|||
| fluentdargs="--no-supervisor" | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this necessary to use jemalloc?
|
@richm I am find merging this PR as long as we have a story for downstream |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also curious about the purpose of the fluentd arg --no-supervisor otherwise LGTM
it is problematic for monitoring and metrics to have two separate fluentd processes running in each pod. It is even more problematic if we want to use jemalloc stats/tracing features, because we will get two sets of stats. When running in a container, it is much better to let the container runtime (i.e. openshift) manage the process lifecycle rather than an external supervisor process running inside the same pod/container. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
|
/retest |
|
fixes bz 1502764 slow memory leak in logging-mux during steady-state logging. |
jemalloc is vendored in as a git submodule under fluentd
docker build will copy the source to the image, and build
and install the binaries and libraries in the image
If jemalloc is off, and you want to use it:
oc set env ds/logging-fluentd USE_JEMALLOC=true
This commit also disables fluentd supervisor mode so that we
are only running the one fluentd process with jemalloc.
You can set jemalloc options by
oc set env ds/logging-fluentd MALLOC_CONF="stats_print:true,prof:true,...."
see https://github.com/jemalloc/jemalloc/wiki/Getting-Started for more
information
|
/retest |
|
/test json-file |
|
/test all [submit-queue is verifying that this PR is safe to merge] |
|
Automatic merge from submit-queue. |
|
/cherrypick release-3.7 |
|
@richm: New pull request created: #807 In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
jemalloc support
docker build will pull down the released tarball, configure, and
make install
If you want to use jemalloc:
This will cause fluentd to run with jemalloc. It is off by default.
This also disables fluentd supervisor mode so that we
are only running the one fluentd process with jemalloc.
You can set jemalloc options by
see https://github.com/jemalloc/jemalloc/wiki/Getting-Started for more
information
/test