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 installing one of the packages or release assets listed on the release page,
then you will be getting a glibc
build. musl
builds are available through the full release asset
listing.
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-alpine
and
v0.14.0-static
images use musl
as 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.