<html><head></head><body>Hi Dilyan,<br><br>Although it is very common that /run is mounted as a tmpfs filesystem it is not universal; even more so on Linux systems that don't run systemd. And there are systems that don't run Linux.<br><br>Also the semantics of SYSV are generally better defined on different platforms.<br><br>Matt<br><br><br><div class="gmail_quote">On 8 September 2019 14:40:11 GMT+01:00, "Дилян Палаузов" <dilyan.palauzov@aegee.org> wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">Hello,<br><br>the file docsrc/imap/concepts/deployment/performance_recommendations.rst says:<br><br>In-memory filesystems are faster then disk filesystems, but are limited in space and volatile as well. The following<br>list includes configuration settings that could make the corresponding databases, files and directory trees be created<br>and maintained on a temporary filesystem.<br><br>* ``proc_path``: /dev/shm/cyrus-imapd/proc<br>* ``mboxname_lockpath``: /dev/shm/cyrus-imapd/mboxname_lock<br>* ``duplicate_db_path``: /dev/shm/cyrus-imapd/duplicate_db<br>* ``statuscache_db_path``: /dev/shm/cyrus-imapd/statuscache_db<hr>lib/imapoptions says:<br>{ "prometheus_stats_dir", NULL, STRING }<br>/* Directory to use for gathering prometheus statistics.  If specified,<br>   must be an absolute path.  If not specified, the default path<br>   $configdirectory/stats/ will be used.  It may be advantageous to locate this<br>   directory on ephemeral storage. */<hr>doc/examples/imapd_conf/murder-backend.conf, doc/examples/imapd_conf/murder-frontend.conf,<br>doc/examples/imapd_conf/murder-mupdate.conf, doc/examples/imapd_conf/normal-master.conf, doc/examples/imapd_conf/normal-<br>replica1.conf and doc/examples/imapd_conf/normal.conf say:<br><br># Directories for proc and lock files<br>proc_path: /run/cyrus/proc<br>mboxname_lockpath: /run/cyrus/lock<br><br># Locations for DB files<br># The following DB are recreated upon initialization, so should live in<br># ephemeral storage for best performance.<br>duplicate_db_path: /run/cyrus/deliver.db<br>ptscache_db_path:  /run/cyrus/ptscache.db<br>statuscache_db_path: /run/cyrus/statuscache.db<br>tls_sessions_db_path: /run/cyrus/tls_sessions.db<hr>docsrc/imap/download/packagers.rst says:<br>Ephemeral files and temporary filesystems<br>#########################################<br><br>In addition to Unix domain sockets and lock files, several databases<br>used by Cyrus programs may be located in temporary filesystems, such as<br>those backed by RAM (i.e. tmpfs, md, etc.).  Here's a list of such<br>files.  In this example, the filesystem ``/run`` is on tmpfs::<br><br>    proc_path: /run/cyrus/proc<br>    mboxname_lockpath: /run/cyrus/lock<br>    duplicate_db_path: /run/cyrus/deliver.db<br>    statuscache_db_path: /run/cyrus/statuscache.db<br>    ptscache_db_path: /run/cyrus/ptscache.db<br>    tls_sessions_db_path: /run/cyrus/tls_sessions.db<br>    lmtpsocket: /run/cyrus/socket/lmtp<br>    idlesocket: /run/cyrus/socket/idle<br>    notifysocket: /run/cyrus/socket/notify<hr>docsrc/imap/download/upgrade.rst says:<br>You don't need to copy the following databases as Cyrus 3.0 will<br>recreate these for you automatically:<br><br>* duplicate delivery (deliver.db),<br>* TLS cache (tls_sessions.db),<br>* PTS cache (ptscache.db),<br>* STATUS cache (statuscache.db).<br><br>.. note::<br>    You may wish to consider relocating these four databases to ephemeral<br>    storage, such as ``/run/cyrus`` (Debian/Ubuntu) or ``/var/run/cyrus``<br>    or whatever suitable tmpfs is provided on your distro.  It will place<br>    less IO load on your disks and run faster.<hr>docsrc/imap/reference/admin/locations/configuration-state.rst says:<br><br>Ephemeral Databases<br>^^^^^^^^^^^^^^^^^^^<br><br>Several of the state databases may be located in RAM-backed locations,<br>such as ``/run`` or ``/var/run`` or where ever your OS roots such<br>filesystems (i.e. ``tmpfs`` on Linux or ``mfs`` on FreeBSD). Cyrus 3.0 will<br>recreate the following databases for you automatically:<br><br>* duplicate delivery (deliver.db),<br>* TLS cache (tls_sessions.db),<br>* PTS cache (ptscache.db),<br>* STATUS cache (statuscache.db).<br><br>Relocating these DBs to ephemeral storage will place less IO load on<br>your disks and tend to run faster.<hr>Where is the truth?  What is the complete list of things, that will benefit on being on a tmpfs?  On one place or<br>another, STATUS cache, TLS cache, PTS cache, duplicate delivery, proc_path, mboxname_path, prometheus_stats_dir are<br>mentioned as candidates.<br><br>Do sockets (lmtpsocket) benefit from being on tmpfs, as only download/packagers.rst suggests ?<br><br>Putting on a single place all candidates for tmpfs will be good, and using consistently /dev/shm or /run or /var/run to<br>mean tmpfs in all documentation will also be good.<br><br>Greetings<br>  Дилян<br><br></pre></blockquote></div><br>-- <br>Sent from my Android device with K-9 Mail. Please excuse my brevity.</body></html>