Memory
Details on using the Seq Docker container
For Seq to accurately measure available memory, depending on the hosting infrastructure, it's often necessary to specify memory limits for the container. If the Seq container exits unexpectedly, or fails with out-of-memory errors, specify the --memory
and --memory-swap
arguments to docker run
:
docker run --memory=16g --memory-swap=16g <other args> datalust/seq
The argument to these flags is the total memory that the system should provide for the container (more is better). Normally, both flags should have the same value, effectively disabling swap for the container.
Managing cache memory
Memory in Seq is managed in a few layers:
- The host memory limit. If Seq uses too much memory on the host it will risk being 'OOM-killed' by the OS.
- The container memory limit. This value is specified through the
--memory
args todocker run
. If this value isn't set then it will default to the host memory limit. If Seq uses more than this value it will probably be recycled by Docker.- The .NET GC heap limit. This value is specified through the
COMPlus_GCHeapHardLimitPercent
environment variable. If this value isn't set then it will default set to 97% of the container memory limit. If Seq uses more than this value it will start throwingOutOfMemory
exceptions.- The cache target size. This value is specified through the
cache.systemRamTarget
configuration setting. If this value isn't set then it will default to between 70%-90% of the container memory limit. Seq will try keep its cache footprint as close as possible to the target and under the container memory limit. If Seq uses more than this value it will start dropping cache segments.
- The cache target size. This value is specified through the
- The .NET GC heap limit. This value is specified through the
- The container memory limit. This value is specified through the
The default values should provide a stable environment with headroom for ingestion and query spikes, but they can be tuned for very large or very small instances.
Updated about 3 years ago