Transcript

Meme format: Undertaker standing behind AJ Styles

AJ styles caption: Stubborn process consuming too much memory.

Undertaker caption: OOM Killer

  • vinyl@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    2 hours ago

    heh one time I was compiling Linux kernel, I used full LTO with all 24 threads used for compilation, like within a minute of starting, it ate up all 48gb of ram before the oom killer could do anything about it and proceeded to lock up my system, since then I left 1 or 2 threads alone.

  • katy ✨@piefed.blahaj.zone
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    1
    ·
    9 hours ago

    just go into system monitor, select processes, ctrl-a, right click end ___ processes. checkmate system.

  • certified_expert@lemmy.world
    link
    fedilink
    arrow-up
    12
    ·
    14 hours ago

    True story:

    • doing research. About 100 ff tabs open.
    • about 50 emacs buffers open.
    • run script that goes roge.
    • oom killer kills emacs.

    me: YOU, SON OF A BIT**H!

  • MonkderVierte@lemmy.zip
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    10 hours ago

    Well, earlyoom maybe. Linux’ own oom-killer is famously too slow to act, and can’t work a long time then, because the PC is already in memory pressure limbo. And also often kills the wrong thing, prelockd and nohang also help against this.

  • Eager Eagle@lemmy.world
    link
    fedilink
    English
    arrow-up
    14
    ·
    1 day ago

    the only times I had OOM killer kick in, the machine was already frozen for a long time trying to swap things in and out and whatnot. So I started using earlyoom - it’ll just nuke that memory hogging process out of existence before it takes the whole machine down.

    • xthexder@l.sw0.com
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      1 day ago

      That sounds to me like it’s basically the same as turning off swap. I don’t think oom killer activates until you fill up your swap as well.

      I guess it could still be useful since it’s more tunable than the kernel oom killer.

      • Eager Eagle@lemmy.world
        link
        fedilink
        English
        arrow-up
        6
        ·
        1 day ago

        it’s not, because it takes swap usage into account, so you can benefit from swap without risking a frozen system

        • xthexder@l.sw0.com
          link
          fedilink
          arrow-up
          2
          arrow-down
          1
          ·
          1 day ago

          I guess swap can still be useful for background browser tabs and apps. I haven’t run swap on my machines for years now, so I can’t really remember how and when it decides to start moving stuff there.

          The last few times I ran into OOM killer it’s been from compiling/linking some huge project that used up 90% of my ram on its own… so I’ve probably been having a different experience than most people.

    • palordrolap@fedia.io
      link
      fedilink
      arrow-up
      7
      ·
      1 day ago

      It is now my head canon that it randomly chooses a memory location and kills whatever process owns it, repeating as necessary.

      The perverse logic of there being a greater chance of hitting a memory hog makes far too much sense.

      It can’t actually be this though, can it?

      • CameronDev@programming.dev
        link
        fedilink
        arrow-up
        7
        ·
        20 hours ago

        I believe, and I could be very wrong, that it kills the largest memory process. The problem is that it may not be the problematic process. You could have a well behaved DB that is using a stable 80%, and a runaway process that rapidly fills the remaining 20%, and OOM will kill the DB, and let the out of control process keep consuming memory until it becomes the largest. Then your DB is down and you don’t known why.

        I like the idea of just killing processes at random though. Determinism is overrated.

      • black0ut@pawb.social
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        16 hours ago

        It isn’t.

        On Linux, the OOM generally weighs 2 things, and based on those, starts killing processes until the system dies or goes back to life.

        The 2 things it weighs are memory footprint and how recent the process is.

        The reasoning is that, by killing a recently spawned process that is hogging a lot of memory, you will probably kill an unruly app that a user started and not a critical system component. Even in the case of servers with databases that use hundreds of GB of memory, it should in theory not kill them if there’s a recent process that has quickly hogged a lot of ram.

        Of course, it can still be a bit of a hit or miss (after all, it’s a last resource before crashing, and you can’t afford much complexity). But for the most part, it works well enough.

        Edit: I actually looked at the code. It doesn’t check if the process is recent. I don’t know where I read that it did. Maybe it was the OOM code for something else.

        There are still ways to mark an app as non oom killable, like a critical DB process. But it needs to be manually done.

  • rumschlumpel@feddit.org
    link
    fedilink
    arrow-up
    3
    ·
    1 day ago

    I’ll need to look into that again. At some point, OOM mostly annoyed me by killing Firefox while I my RAM wasn’t quite full and everything was running smoothly, so I disabled it and never bothered again since then. But occasionally I do run into issues.

    • anonfopyapper@lemmy.world
      link
      fedilink
      arrow-up
      4
      arrow-down
      1
      ·
      1 day ago

      Are you sure it was OOM? Just in case, run memtest.

      Also make sure to setup enough swap. Swap is literally almost free RAM. Sure it won’t replace it, but on 8gb shitbox, having 32GB on swap really helps. Especially if swapping starts at 70% of ram usage.

      And zswap to make less writes to nvme and make it last longer.