我最近了解到,journalctl占用了我的16 Pi卡的很大一部分(Raspberry ):
$ journalctl --disk-usage
Archived and active journals take up 312.1M in the file system. 在我的用例中,journalctl和journald不是这台机器的拉着他们的重量。这是一个旧的RPi,rsyslog也在运行。我估计我对journalctl的需求和使用可能是“千载难逢”。因此,我决定禁用journald --即“提要”journalctl。我认为这很简单,使用systemctl到stop,或者可能只是对systemd-journald.service进行disable,这样它就不会在下一次引导时启动。
在拔掉插头之前,我决定做一些研究。没有找到成千上万的引用,提供了“如何- to”的建议,非常少的结果,针对我的具体搜索术语:“如何禁用日记”。相反,研究结果大多提供了关于减少journald's资源消耗的建议。我确实找到了一些让我停下来的参考资料:
在ArchLinux论坛上有一条旧的帖子指出,没有反响是不可能禁用journald的;也就是说,"Masking systemd-journald causes all kinds of dependency failures and drops you at an emergency prompt.",但是这个帖子现在已经有10年历史了。
系统d-日志.服务手册说,"stopping it [systemd-journald.service] is not recommended."。文档从那里开始讨论名称空间?
我已经了解到,防止systemd单元启动的常规命令没有任何效果;也就是说,它正常启动:
$ sudo systemctl disable systemd-journald.service
$ sudo reboot
# ... and after boot & login:
$ systemctl status systemd-journald.service
● systemd-journald.service - Journal Service
Loaded: loaded (/lib/systemd/system/systemd-journald.service; static)
Active: active (running) since Fri 2022-06-03 07:30:29 UTC; 1min 59s ago
TriggeredBy: ● systemd-journald-audit.socket
● systemd-journald.socket
● systemd-journald-dev-log.socket
Docs: man:systemd-journald.service(8)
man:journald.conf(5)
Main PID: 134 (systemd-journal)
Status: "Processing requests..."
Tasks: 1 (limit: 1598)
CPU: 820ms
CGroup: /system.slice/systemd-journald.service
└─134 /lib/systemd/systemd-journald
...
$ journald怎么会被禁用?或者可以禁用它吗?如果不是,为什么systemd开发人员会强迫用户这样做?(好吧,是的-征求意见,所以忘了问题的那一部分吧。)
发布于 2023-05-26 16:27:45
怎样才能使日记失效?
首先,这就是文档化说明了imjournal模块用于从systemd的日志中获取日志消息。 (粗体是原创的,斜体是我的重点):
请注意,这个模块读取日志数据库,它被认为是一种相对高性能的操作.因此,使用该模块的配置的性能可能明显低于使用方位角using时的性能。日志提供了所有“经典”syslog消息的副本,但是它不提供结构化数据。只有在需要结构化数据的情况下,才必须使用日志。否则,imjournal可能被方位角doing所取代,我们强烈建议这样做。我们建议查看我们关于rsyslog日志集成的简短介绍,以了解更多预期用例的细节。警告:某些版本的systemd日志存在数据库损坏问题,这导致日志在紧循环中无休止地返回相同的数据。这会导致rsyslog中大量的消息重复,当系统资源耗尽时,可能会导致拒绝服务。使用适当的速率限制器可以在一定程度上缓解这种情况,但即便如此,也会有大量的旧数据不断重复。默认情况下,将激活分级消除,并允许在10分钟内处理20,000条消息,这对于大多数用例来说应该足够好。如果不够,请使用下面描述的参数来调整允许的卷。强烈建议It只在非常需要使用时才使用这个插件。
您是否“非常需要”将“结构化数据”提供给rsyslog?当使用更多的CPU周期时,速度会慢得多吗?
用直截了当的rsyslog代替systemd的日志很容易:
/etc/rsyslog.conf。删除对imjournal和imuxsock的所有引用。module(load="imuxsock" # provides support for local system logging (e.g. via logger command) SysSock.Use="on") # Turn on message reception via local log socket;替换上面的行systemctl stop systemd-journal-flush.service systemd-journald.service systemd-journald-dev-log.socket systemd-journald.socketsystemctl stop systemd-journal-flush.service systemd-journald.service systemd-journald-dev-log.socket systemd-journald.socketsystemctl restart rsyslog/var/log/messages等人中您可能需要调整其中的一些命令-特别是通过禁用更多的systemd服务。
发布于 2022-06-03 06:41:33
禁用此服务不会阻止您的设备正常工作,但是日志记录将明显停止。我看不出还有其他问题。
https://unix.stackexchange.com/questions/704833
复制相似问题