1. 53

  2. 26

    I’ve been using the following for about a year now:

    sudo systemctl stop docker containerd
    sudo ip link del dev docker0 2>/dev/null || true

    Also not helped is I think the docker crowd never got the memo about dynticks. Even when completely idle and with no containers running, its daemons just wakeup the kernel ~100hz; probably just someone not understanding an idle loop can actually be idle with a bit of work.

    1. 3

      This sounds like a great blog post.

      1. 5

        Other than lobbying folks they should make strace part of their tooling (alongside gdb, tcpdump, …) the hard part is persuading them why they should care in face of all the other problems they are tackling.

        Besides, I would need to get a blog on which to post such material and grumpysysadmin.com seems to already be taken. :)

        1. 5

          Or maybe just gist or self post. Exposing the problem and showing how to measure it can go a long way, your post need not be exhaustive. Change is very slow with humans. Reducing the idle load is a noble goal.

        2. 1

          What else needs to be said about it?

          1. 1

            Not sure but I’ve disabled docker autostart since a long time ( sudo systemctl disable docker ) and can’t find any docker0 device in ifconfig upon bootup.

            Edit: Retried it, works. If you disable auto-start from docker daemon you won’t have a docker0 device. You can get docker (and also the docker0 device) back via sudo systemctl start docker

        3. 6

          I own a number of thinkpads, also have a bench power supply than can source 5a @ 20v, so I can do some analysis next week by removing the battery and looking at the current consumption under various configurations and workloads.

          The power management system on modern laptops should be able track power usage with a fairly fine granularity.

          1. 3

            yes, actual measurement would be much more helpful than my anecdata. Although, even if I’ve just enabled more accurate estimate reporting, I’ll take it.

            1. 2

              I don’t have a thinkpad any more, but won’t most modern laptops’ battery management system give you a measurement of battery current draw when they’re disconnected from a charger? On my current Dell it’s at /sys/class/power_supply/BAT0/current_now. PowerTop shows this metric as well, I think.

              I would expect this could be as accurate as measuring the average draw with a bench supply, if not more accurate (the BMS needs a reasonably accurate measurement of battery discharge current for “gas gauge” state of charge estimation.)

              1. 2

                I’ll take a look the next time I boot up my x220, I had planned on removing the battery and only operate it off the bench supply so load wouldn’t be conflated with any power going directly to charging.

                1. 2

                  Yeah, I got that - it’s a good idea, I just thought this option might also be useful to know about (has the similar-but-opposite problem that the battery’s internal current meter is not useful if external power is connected to the battery).

            2. 5

              I think there’s something else going on.

              I’ve had this same problem, used the same solution, and several extra watts moved to some other device or task. After doing this repeatedly, I’ve seen the screen or sometimes the Ethernet claim to use four watts. The power usage is still there, but moves.

              I’ve seen this on four Thinkpad models I own. Either powertop is confused or something is masquerading as another device or process.

              Maybe the Intel management engine is mining Bitcoin?

              1. 3

                heh. The accounting is definitely obscure, but the reported drain drop for me is consistent. Early days though.

              2. 3

                My newer linux systems use ip and ifconfig docker0 down doesn’t change anything. What’s the equivalent command with ip ?

                1. 2

                  ip link set down docker0 i think