TYPE: YesNoNone
LOC: Config.memShared
DEFAULT: none
+DEFAULT_DOC: "on" where supported if doing memory caching with multiple SMP workers.
DOC_START
Controls whether the memory cache is shared among SMP workers.
+ The shared memory cache is meant to occupy cache_mem bytes and replace
+ the non-shared memory cache, although some entities may still be
+ cached locally by workers for now (e.g., internal and in-transit
+ objects may be served from a local memory cache even if shared memory
+ caching is enabled).
+
By default, the memory cache is shared if and only if all of the
- following conditions are satisfied: SMP mode is enabled using multiple
- worker processes, cache_mem is positive, and Squid was built with a
- compiler that supports GCC-style atomic operations.
+ following conditions are satisfied: Squid runs in SMP mode with
+ multiple workers, cache_mem is positive, and Squid environment
+ supports required IPC primitives (e.g., POSIX shared memory segments
+ and GCC-style atomic operations).
+
+ To avoid blocking locks, shared memory uses opportunistic algorithms
+ that do not guarantee that every cachable entity that could have been
+ shared among SMP workers will actually be shared.
+
+ Currently, entities exceeding 32KB in size cannot be shared.
DOC_END
NAME: memory_cache_mode