services: syslogd: Do not fsync at each line.

Fixes <https://issues.guix.gnu.org/55707>.

Previously Inetutils' syslogd would call 'fsync' after each line written
to a file.  This would significantly increase boot times on machines
with slow-ish spinning HDDs, where each 'fsync' call would take between
0.1s and 0.4s (and we'd do two of them for each line, one for
/var/log/messages and one for /var/log/debug).

* gnu/services/base.scm (%default-syslog.conf): Add a '-' before each
file name, except /var/log/secure.  Change what goes to /var/log/debug.
This commit is contained in:
Ludovic Courtès 2022-06-06 22:35:12 +02:00
parent 635d49f97e
commit 264ca9452f
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -1397,23 +1397,24 @@ (define %default-syslog.conf
# level notice or higher and anything of level err or # level notice or higher and anything of level err or
# higher to the console. # higher to the console.
# Don't log private authentication messages! # Don't log private authentication messages!
*.alert;auth.notice;authpriv.none /dev/console *.alert;auth.notice;authpriv.none -/dev/console
# Log anything (except mail) of level info or higher. # Log anything (except mail) of level info or higher.
# Don't log private authentication messages! # Don't log private authentication messages!
*.info;mail.none;authpriv.none /var/log/messages *.info;mail.none;authpriv.none -/var/log/messages
# Like /var/log/messages, but also including \"debug\"-level logs. # Log \"debug\"-level entries and nothing else.
*.debug;mail.none;authpriv.none /var/log/debug *.=debug -/var/log/debug
# Same, in a different place. # Same, in a different place.
*.info;mail.none;authpriv.none /dev/tty12 *.info;mail.none;authpriv.none -/dev/tty12
# The authpriv file has restricted access. # The authpriv file has restricted access.
# 'fsync' the file after each line (hence the lack of a leading dash).
authpriv.* /var/log/secure authpriv.* /var/log/secure
# Log all the mail messages in one place. # Log all the mail messages in one place.
mail.* /var/log/maillog mail.* -/var/log/maillog
")) "))
(define* (syslog-service #:optional (config (syslog-configuration))) (define* (syslog-service #:optional (config (syslog-configuration)))