Switching to the system allocator
Vector has switched from using jemalloc to the system allocator
Since version 0.2.0, Vector has used jemalloc as its memory allocator on *nix-based OSes. As part of
some ongoing performance work, we’ve made the decision to switch to the system allocator provided by the platform
Vector is deployed on. This will be either the GNU Allocator for
glibc-based builds (like
Debian) or the
musl allocator for
musl-based builds (like Alpine Linux).
In environments where Vector has access to multiple CPUs, we recommend using the
glibc-based builds as, at the time of
writing, we have observed that the GNU allocator performs
better when running on multiple threads.
If you are running Vector in Docker, we recommend using the
v0.14.0-distroless-libc image for a light-weight Vector
image; however the
v0.14.0-debian image will also be using the GNU Allocator. The
v0.14.0-static images use
glibc is not available there.
This change was made largely because we had insufficient evidence and motivation to use anything other than the system allocator which is a sensible default otherwise. As we have a better understanding of Vector’s allocation profile, it is likely we will revisit this decision.