Met*_*der 3 linux postfix configuration logging rsyslog
我在这里找到了以下内容:
重要提示:在 Linux 上,您需要在路径名之前放置一个“-”字符,例如 -/var/log/maillog,否则 syslogd 进程将使用比 Postfix 更多的系统资源。
但是文档没有给出任何理由。那么,为什么需要这个“-”呢?
仅当您仍然使用 syslogd 或更旧的 rsyslog 版本时才需要这样做
来自http://www.rsyslog.com/doc/v3compatibility.html 的“输出文件同步”部分
Rsyslogd 尽量保持与库存 syslogd 的兼容性。因此,它保留了 syslogd 的默认值,如果没有另外指定,则同步每个文件写入(通过在输出文件名前面放置一个破折号)。虽然在过去硬件不太可靠且 UPS 很少使用的情况下,这是一个有用的功能,但在今天的世界中这不再有用。相反,同步是一个高性能命中。有了它,rsyslogd 写入文件大约 50次 比没有它慢。由于高 IO 活动,它还影响整体系统性能。在 rsyslog v3 中,默认情况下已关闭同步。这是通过特定的配置指令“$ActionFileEnableSync on/off”完成的,默认情况下该指令处于关闭状态。因此,即使 rsyslogd 找到同步选择器行,默认情况下它也会忽略它们。为了启用文件同步,管理员必须在 rsyslog.conf 的顶部指定“$ActionFileEnableSync on”。这确保同步仅发生在管理员真正需要该(性能密集型)功能的某些安装中。在大多数情况下(如果不是全部),这会显着提高 rsyslogd 性能而不会产生任何负面影响。