Update generated RST

parent 8f72a7ed
...@@ -269,9 +269,11 @@ memory overhead. ...@@ -269,9 +269,11 @@ memory overhead.
The *size* argument will be rounded down to a multiple of the The *size* argument will be rounded down to a multiple of the
(possibly rounded) *minpage* argument. (possibly rounded) *minpage* argument.
In addition to the configured memory, approximately 1 / ( *minpage* * Besides the configured memory size, approximately 1 / ( *minpage* *
8) bytes are required for metadata (bitmaps). For the default 4) of it is additionally required for metadata (bitmaps) in the
*minpage* of 64 Bytes, this amounts to approximately 0.2%. varnish home directory and in memory. For the default *minpage* of 64
Bytes, this amounts to approximately 0.4%. The actual figure is output
at startup as ``buddy: metadata (bitmap) size``.
This storage can *not* be used via ``storage.``\ *<name>*. This storage can *not* be used via ``storage.``\ *<name>*.
...@@ -448,6 +450,13 @@ On Linux, the memory cache will be allocated from huge pages, if ...@@ -448,6 +450,13 @@ On Linux, the memory cache will be allocated from huge pages, if
available and if *memsize* is larger than a huge page. *memsize* will available and if *memsize* is larger than a huge page. *memsize* will
then be rounded up to a multiple of the respective huge page size. then be rounded up to a multiple of the respective huge page size.
Besides the configured memory cache size, approximately 1 / 256 (0.4%)
of *memsize* plus 1 / 16384 (0.006%) of *dsksize* will be required in
the varnish home directory and in memory. For example, for
``dsksize=1t`` and ``memsize=1g``, this amounts to roughly 70MB. The
actual figures are output at startup as ``fellow: metadata (bitmap)
memory``.
*objsize_hint* (default 256KB) is used to sanity check *memsize* in *objsize_hint* (default 256KB) is used to sanity check *memsize* in
relation to *dsksize*. It should be set to a value lower than the relation to *dsksize*. It should be set to a value lower than the
average object size (actual or expected). If *memsize* is configured average object size (actual or expected). If *memsize* is configured
...@@ -870,7 +879,9 @@ FELLOW KNOWN ISSUES ...@@ -870,7 +879,9 @@ FELLOW KNOWN ISSUES
* On Linux with ``io_uring``, by default, `fellow` registers all of * On Linux with ``io_uring``, by default, `fellow` registers all of
the memory cache as buffers using the memory cache as buffers using
:ref:`io_uring_register_buffers(3)` to achieve optimal performance :ref:`io_uring_register_buffers(3)` to achieve optimal performance
at runtime, if supported by the system. at runtime, if supported by the system. Where supported, this
enables *zero-copy* IO, where the hardware performs DMA directly
into the `fellow` memory cache.
Buffer registrations happen in multiple threads in parallel, one for Buffer registrations happen in multiple threads in parallel, one for
each io ring. each io ring.
...@@ -890,6 +901,9 @@ FELLOW KNOWN ISSUES ...@@ -890,6 +901,9 @@ FELLOW KNOWN ISSUES
registration is forced to be done as serial, syncronous registration registration is forced to be done as serial, syncronous registration
operations. operations.
Note that even with registered buffers, ``io_uring`` has nothing to
do with how the `fellow` memory cache and LRU on it work.
* If initialization takes longer than the :ref:`varnishd(1)` * If initialization takes longer than the :ref:`varnishd(1)`
``cli_timeout``, it might not come up properly in that it does not ``cli_timeout``, it might not come up properly in that it does not
accept connections after finishing storage initialization. To avoid accept connections after finishing storage initialization. To avoid
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment