Documentation
DocumentationDiscussions

Memory Limits

Seq will default to using as much system memory as possible for memory mapped storage. This improves query performance, while still allowing Windows to reclaim memory when it's needed.

On shared servers, however, this may not play well with other applications and services. If you run additional apps and services alongside Seq, you may wish to limit the overall memory consumption allowed for the Seq process.

Configuring working set limits

Seq versions from 2023.1 onward support working set limits through the process.workingSetLimitBytes configuration option:

seq config set -k process.workingSetLimitBytes -v 16000000000
seq service restart

The value of this setting is in bytes, so the command-line above will limit working set use to 16 GB.

📘

Setting the working set limit too low will lead to slow query response times as all data must be read from disk each time it is required.

Important considerations for upgraded servers

Seq versions prior to 2023.1 run by default as a restricted service account without sufficient permissions to manage memory limits.

If Seq fails to start after setting process.workingSetLimitBytes, this is most likely to be due to the service running as an account without sufficient privileges.

To fix this, first check the configured api.listenUris and storage path using:

seq config get -k api.listenUris
seq service list

You can then run "Seq Service Administration from the Windows Start menu, clicking through the wizard to reconfigure the service. Ensure that the storage path and listen URIs shown in the wizard are the expected values. (Reconfiguring the SSL certificate is not necessary).