Search
Varnish Enterprise

Introduction Installation Upgrading Troubleshooting Changelog Changelog for 6.0.x Changes (Varnish Cache 4.1) Changes (Varnish Cache Plus 4.1) Known Issues Features Backend SSL/TLS Client SSL/TLS termination Cluster In-Process TLS MSE 4 Basic Configuration / Getting Started Configuration Persisted caching Categories Configuration Reference MSE 3.0 Settings mkfs.mse Memory Governor MSE 2.0 NUMA Parallel ESI Backend health counter HTTP/2 Support JSON Logging TCP Only Probes Timeouts Transit Buffer Varnish scoreboard VMODs Accept Accounting ACL (aclplus) ActiveDNS Akamai Connector AWS VCL Body Access & Transformation (xbody) Brotli Cookie Plus (cookieplus) DeviceAtlas DeviceAtlas3 Digest Dynamic backends (goto) Edgestash File Format Geolocation (geoip/mmdb) Header Manipulation (headerplus) HTTP communication (http) Image JSON parsing (json) JWT Key value storage (kvstore) Least connections director (leastconn) Module to control the built-in HTTP2 transport (h2) MSE control (mse) MSE4 control (mse4) Probe Proxy ProxyV2 TLV Attribute Extraction (proxy) Pseudo Random Number Generator Purge (purge/softpurge) Real-time Status (rtstatus) Reverse DNS (resolver) Rewrite S3 VMOD Session Slicer SQLite3 Stale Standard (std) Stat (Prometheus) Strings (str) Synthetic backends (synthbackend) Tag-based invalidation (Ykey/Xkey) TCP configuration (tcp) TLS Total Encryption (crypto) Unified director object (udo) Uniform Resource Identifier (uri) Unix Socket Utilities (unix) URL Plus (urlplus) Utils Vsthrottle

Configuration Reference

Varnish 6.0

The following documentation lists all documented options for MSE4. Any additional undocumented configuration variables are subject to change, and should only be applied after consulting with Varnish Software’s support services.

Value types

These are the different value types used by the configuration keys and their expected value format.

unsigned

Unquoted unsigned number.

double

Unquoted floating point number.

bool

true or false.

string

Quoted string.

id

Quoted string where the first character has to be a letter.

bytes

Quoted string containing an integer number, optionally followed by a unit like m.

categories

Takes a configuration group. Each key in the group can itself be a child category group. Keys named as *<property-name>* set properties on the category.

Category properties:

  • *memory_weight*

    Sets the memory weight of the category

  • *subdivisions*

    Set the number of subdivisions to apply to this category.

  • *stores*

    Set the list of stores belonging to this category.

  • *store_select*

    Specify the algorithm to use when selecting a store from the available stores in this category.

See Categories for more information.

books

Takes a list of configuration groups, where each group defines a book instance.

stores

Takes a list of configuration groups, where each group defines a store instance.

Section: Environment

memcache_chunksize

Ephemeral object memory chunk size

  • Section: env
  • Expect value type: bytes
  • Default value: 4M
  • Minimum value: 4k

The maximum size of the memory chunks allocated for ephemeral object fragments.

varylib_tblsize

Varylib table size

  • Section: env
  • Expect value type: bytes
  • Default value: 4k

Size of table chunk used for vary library

storage_statelog_path

  • Section: env
  • Expect value type: string
  • Default value: /usr/local/var/mse

require_all_devices

Require all file devices

  • Section: env
  • Expect value type: bool
  • Default value: false

Require that all configured file devices (books and sores) are available when starting the Varnish daemon.

default_subdivisions

Default number category subdivisions

  • Section: env
  • Expect value type: unsigned
  • Default value: 4
  • Minimum value: 1

Category subdivisions used when the MSE4 configuration file does not specify a specific subdivision for the category.

default_store_select

Default store selection algorithm

  • Section: env
  • Expect value type: string
  • Default value: smooth
  • Minimum value: 0

Default algorithm to use in categories that do not specify a specific store selection algorithm for the category.

default_category

Default object category

  • Section: env
  • Expect value type: string
  • Default value: fail
  • Minimum value: 0

Default category to assign new objects when VCL does not set a category. The value ‘fail’ will cause object creation failure.

categories

Category definition tree

  • Section: env
  • Expect value type: categories

Category definition tree. See Categories for more information

books

List of books

  • Section: env
  • Expect value type: books

List of books defined in this environment.

Section: Book

id

Book id

  • Section: book
  • Expect value type: id
  • Minimum value: 1
  • Maximum value: 16
  • Flags: required

Symbolic ID of this book.

filename

Book filename

  • Section: book
  • Expect value type: string
  • Minimum value: 1
  • Flags: required

The full path filename of the book file that will hold persisted object metadata.

size

Book size

  • Section: book
  • Expect value type: bytes
  • Minimum value: 1
  • Flags: required

The size of the book in bytes.

required

Require file devices

  • Section: book
  • Expect value type: bool
  • Default value: false

Require that this book is available when starting the Varnish daemon.

banjournal_size

Ban journal size

  • Section: book
  • Expect value type: bytes
  • Default value: 10m
  • Minimum value: 0

The size of the book ban journal in bytes.

slotjournal_percentage

Size of the slot journal

  • Section: book
  • Expect value type: double
  • Default value: 0.1
  • Minimum value: 0.0
  • Maximum value: 1.0

slotjournal_line_len

Length of journal slot commit lineup

  • Section: book
  • Expect value type: unsigned
  • Default value: 32768
  • Minimum value: 1

Number of slots to line up for journal commit before new submissions are queued.

slot_reserved_hugepages

Attempt using hugepages for the slot table

  • Section: book
  • Expect value type: bool
  • Default value: false

If true, an attempt at allocating the slot table using reserved hugepages will be made, with fallback to regular pages.

slot_hugepages

Mark slot table for use with transparent hugepages

  • Section: book
  • Expect value type: bool
  • Default value: false

Mark slot table allocation for use with transparent hugepages.

quickslot_reserved_hugepages

Attempt using hugepages for the quickslot table

  • Section: book
  • Expect value type: bool
  • Default value: false

If true, an attempt at allocating the quickslot table using reserved hugepages will be made, with fallback to regular pages.

quickslot_hugepages

Mark quickslot table for use with transparent hugepages

  • Section: book
  • Expect value type: bool
  • Default value: false

Mark quickslot table allocation for use with transparent hugepages.

ykey_key_bits

Persisted object Ykey search tree key bits

  • Section: book
  • Expect value type: unsigned
  • Default value: 8
  • Minimum value: 0
  • Maximum value: 20

Number of key bits used in the persisted object Ykey search tree root selection. This setting is closely related to the ykey_slot_bits, and the number of roots in use is two to the power of the sum of the settings. Note that the sum is not allowed to exceed 20.

ykey_slot_bits

Persisted object Ykey search tree slot bits

  • Section: book
  • Expect value type: unsigned
  • Default value: 7
  • Minimum value: 0
  • Maximum value: 20

Number of bits from the slot number used in the persisted object Ykey search tree root selection. This setting is closely related to the ykey_key_bits setting, and the number of roots in use is two to power of the sum of the settings. Note that the sum is not allowed to exceed 20.

aio_engine

Engine to use for book writing

  • Section: book
  • Expect value type: string
  • Default value: auto

Engine to use for asynchronous writing to the book. Valid values are ‘auto’, ‘iouring’ and ‘classic’.

slot_table_aio_requests

The maximum number of outstanding AIO requests for writing to the slot table.

  • Section: book
  • Expect value type: unsigned
  • Default value: 128
  • Minimum value: 1
  • Maximum value: 65536

quickslot_table_aio_requests

The maximum number of outstanding AIO requests for writing to the quickslot table.

  • Section: book
  • Expect value type: unsigned
  • Default value: 128
  • Minimum value: 1
  • Maximum value: 65536

slot_liberator_batch_size

Batch size to use when evicting objects to free slots

  • Section: book
  • Expect value type: unsigned
  • Default value: 64
  • Minimum value: 1

The number of objects to batch up when evicting objects to increase the number of free slots in the book.

slot_reserve

The percentage of slots to be kept in reserve

  • Section: book
  • Expect value type: double
  • Default value: 0.5
  • Minimum value: 0
  • Maximum value: 50

When the number of unused slots goes below this percentage of the total number of available slots in the book, objects will start to be evicted to free up slots.

debug_alloc

Apply extra alloc related debug

  • Section: book
  • Expect value type: bool
  • Default value: false

Apply extra alloc related debug operations. This comes at a cost.

stores

List of stores

  • Section: book
  • Expect value type: stores

List of stores defined in this book.

Section: Store

id

Store id

  • Section: store
  • Expect value type: id
  • Minimum value: 1
  • Maximum value: 16
  • Flags: required

Symbolic ID of this store.

filename

Storage file name

  • Section: store
  • Expect value type: string
  • Minimum value: 1
  • Flags: required

The full path filename of the storage file that will hold the persisted objects.

size

Store size

  • Section: store
  • Expect value type: bytes
  • Default value: 1G
  • Minimum value: 10m
  • Flags: required

The size of the store in bytes.

required

Require file devices

  • Section: store
  • Expect value type: bool
  • Default value: false

Require that this store is available when starting the Varnish daemon.

segment_size

Store segment size

  • Section: store
  • Expect value type: bytes
  • Default value: 1G
  • Minimum value: 4096
  • Maximum value: 4G

The size of the segments the store is divided into and used to track allocations. The actual selected segment size will be subject to rounding internally.

reserve_minchunksize

Minimum size of a free chunk to be counted towards the free reserve

  • Section: store
  • Expect value type: bytes
  • Default value: 512k
  • Minimum value: 16k
  • Maximum value: 8m

reserve_size

  • Section: store
  • Expect value type: bytes
  • Default value: 10G
  • Minimum value: 10G

See Persisted Caching for a description on how the background task for freeing up space in the store and how reserve_size is interpreted.

alloc_chunksize

The target allocation chunk size for persisted objects

  • Section: store
  • Expect value type: bytes
  • Default value: 2m
  • Minimum value: 4k

This setting determines the size of the chunks to break down large persisted objects into.

segment_remap_threshold

Segment low fill level remap threshold

  • Section: store
  • Expect value type: double
  • Default value: 0.9
  • Minimum value: 0.0
  • Maximum value: 1.0

Fill level threshold below which segments will be considered for remapping available space, making it available again for future allocations.

lru_painted

Fraction of store objects painted as candidates for store purges

  • Section: store
  • Expect value type: double
  • Default value: 0.33
  • Minimum value: 0
  • Maximum value: 1

This fraction of the objects on the store LRU will be painted as candidates for store purge when there is too little space available for new objects in the cache. The painted objects are all eligeble for purging, and which object is purged is based on the location they occupy in the store so that continous free areas may be created.

aio_engine

Engine to use for store reading and writing

  • Section: store
  • Expect value type: string
  • Default value: auto

Engine to use for asynchronous reading and writing to and from the store. Valid values are ‘auto’, ‘iouring’ and ‘classic’.

aio_requests

Number of simultaneous AIO requests to schedule on the store

  • Section: store
  • Expect value type: unsigned
  • Default value: 128
  • Minimum value: 1

Number of simultaneous AIO requests to schedule on the store.

aio_queue_length

Number of AIO requests to queue before blocking

  • Section: store
  • Expect value type: unsigned
  • Default value: 256
  • Minimum value: 1

Number of AIO requests to queue before blocking.

write_checksum

Produce checksum of store writes

  • Section: store
  • Expect value type: bool
  • Default value: true

Produce checksum of store writes.

verify_checksum

Verify checksum on store reads

  • Section: store
  • Expect value type: bool
  • Default value: true

Verify checksum on store reads.

chksum_algorithm

Checksum algorithm

  • Section: store
  • Expect value type: string
  • Default value: xxh3

Which checksum algorithm to use for the store. Valid values are ‘xxh3’.


®Varnish Software, Wallingatan 12, 111 60 Stockholm, Organization nr. 556805-6203