11 comments

  • barrkel 55 minutes ago
    journald is IMO the worst part of the systemd ecosystem. You're better off using it only as a router and not storing any logs in it. The indexing system it uses is slow and provides no control over chatty subsystems - you cannot truncate the logs for just a single identifier. For all the use indexing is doing you will get better performance out of a modern grep like ag or rg. Structure is worth something but it's better off somewhere other than journald.
    • graemep 8 minutes ago
      I recently put a lot of effort into reducing logging because of excessive writes. It was so much easier when everything had its own log and you could just look at which files were growing.
  • pudgywalsh 36 minutes ago
    How do you try to copy Windows NT's Event Log — which is essentially unchanged from the 1990s when systems ran on 32MB of RAM or less — and fail so spectacularly?

    The first thing I do on a Linux system is install a proper syslog daemon.

    • rasz 2 minutes ago
      One of the first things I do on win10 is disable most of excess logging.
  • smartmic 1 hour ago
    I recently looked into disk usage of journald and was also shocked. My next step towards peace of mind is https://www.devuan.org/os/init-freedom

    Will try it out as next distro for my Debian system, longtime experience with Void Linux (runit) on another box is great.

    • ValdikSS 1 hour ago
      Many applications hammer the disk even if the developers don't believe this is an issue, not only journald, unfortunately.

      It's my third attempt to make my regular Linux desktop less disk-chatty. This is a huge issue for btrfs and for COW FS in general, because they have massive write amplification for small and frequent writes (38,7 TB written to my idle desktop SSD in 2 years).

      If you're interested, here are my findings this time so far:

          - workrave: 60 second stat sync https://github.com/rcaelers/workrave/pull/717
          - kde klipper: saves to disk on every copy, even if permanent storage is disabled https://bugs.kde.org/show_bug.cgi?id=501030
          - kde plasmashell: saves qt shader cache each time notification popup disappears https://bugs.kde.org/show_bug.cgi?id=523805
          - bitwarden firefox extension: tries to connect to desktop application every 10 seconds, writes about every failure to browser's WebStorage 14+ KB https://github.com/bitwarden/clients/issues/22192
          - firefox datareporting/glean: very chatty .mozilla/firefox/xxx/datareporting/glean/db/data.safe
          - ipfs: writes every received DHT announce to disk, 20 GB in 3 hours https://discuss.ipfs.tech/t/constant-writes-to-datastore-log/20316
          - mailcow: redis saves data every 5 minutes https://github.com/mailcow/mailcow-dockerized/pull/7405
      • graemep 4 minutes ago
        I noticed plasmashell is write heavy and logs to journald a lot so I have just switched to XFCE partly for that reason.
      • doublepg23 50 minutes ago
        The two I most often see in Ubuntu's dmesg are:

        audit - appears to be some sort of AppArmor logging?

        br[] - bridge interface docker uses consistently rebuilds itself? May be related to docker compose networking.

    • p_l 56 minutes ago
      systemd-journald has one of the most deranged log file formats I have ever dealt with, and one of the worse user interfaces, too.

      I am not again binary logs, or logs in a database. It's just yet another time I deal with good ideas implemented horribly, horribly badly when it comes to systemd.

  • ValdikSS 1 hour ago
  • amluto 57 minutes ago
    Ooh, mmapped writes. I make that mistake once, years ago. :) I posted a comment in that GH issue.
  • sam_lowry_ 40 minutes ago
    Cool to see @ValdikSS here as well. The guy never sleeps or he is AI in disguise ;-)
  • pengaru 29 minutes ago
    I'm probably the main person responsible for making journald usable at all.

    But I never really made any effort to change the on-disk structure or how writes were performed. My focus was more on the read performance for journalctl and stability of the daemon.

    Back when I was paid to fix things in journald at CoreOS ages ago, it couldn't even avoid getting killed by its own service watchdog.

    My impression back then was the on-disk format dispersed the information too much within the same file, and those individual datums being written at discontiguous offsets were quite small, far smaller than an IO block size or even a disk sector size.

    Seemed like a write amplification problem due to the file format. If you write a few bytes into some arbitrary position within a file, the storage has to write back the whole block, despite your only changing a tiny fraction of it. If those few bytes happened to cross a block boundary, guess what? two blocks get written.

    The format had no consideration for these block-oriented storage details, then doing the IO via mmap rubs salt into the wound since the kernel has to try guess what to prefetch asynchronously... but I don't think that aspect amplifies the writes above what plain buffered IO would do - maybe I'm wrong. I'd expect the mmap aspect to be causing more/mispredicted reads, and polluting the page cache with unrelated contents (you tend to end up with the entire journal cached IIRC, if you have enough memory).

  • tryauuum 1 hour ago
    hello ValdikSS! nice to see you alive
  • rasz 4 minutes ago
    Oh how I love totally predictable poetterings reply to previous bug report that got closed because "measuring it wrong" and "this is not a support forum".
  • mono442 36 minutes ago
    journald has never been of great quality. It somehow manages to be visibly slower than grepping gzipped text logs.
    • pengaru 13 minutes ago
      it has bad scaling properties esp. if you have many journal files

      the last time I contributed to journald upstream was to fix a degenerate behavior with lots of journals: https://github.com/systemd/systemd/commit/176f73272e6e3116ca...

      that makes a dramatic difference for those hitting this case, but it only gets things from nearly unusable to slow-as-usual.

  • skullone 13 minutes ago
    The "gift" of systemd never stops. It's like an STD, just spreading rot across everything it touches