4.10 kernels have higher CPU usage..
I have a bunch of physical and vm servers. Recently the upgrade the 4.10 series has triggered alarms that my cpu usage has gone up. Had anyone else noticed this.
I have moved my machines back to the 4.9-23 (currently located in past) and my cpu has gone back to normal. Loaded the 4.10-3 and cpu usage went up again. My load average is 1.0 or higher constantly.. on a c2d E8500 @3.1Ghz, this physical machine is doing dns, squid, dnscrypt for a small home network.. I have an esxi vm 2 cpu's X5660 @2.8Ghz that will run at a load of 8.0 b/c of mysql on the 4.10 kernels and 0.0 on the 4.9 kernels.. I would have thought that others would have had the same experience.. but I've not seen anyone mention anything.. I also have a 16 core android build host, just sits with load averages of 1.0 1.0 1.0 on 4.10 and 0.0's on the 4.9 (when idle..) I'd like to move to the 4.10's but they seem to be slowing down all my machines.. Anyone else? Any suggestions? (all debian machines of various stretch and jessie maybe 20+ machines physical and vm in total) Back to top |
|||||
I see that the 4.10 kernel switched to using the p-state driver for modern Intel processors--I notice on my laptop that the CPU use seems to be higher, but the battery life is not suffering, nor has the CPU temperature jumped, so I'm inclined to think its an artifact of the switch.
I read a post for older kernels that mentioned a way to switch to cpufreq at boot, but have not tested it: www.newnix.space/blog/2015/7/23/dealing-with-power-drain-on-gnulinux-for-intel-based-machines Back to top |
|||||
top - 10:30:39 up 5 min, 1 user, load average: 1.86, 1.29, 0.60
dmesg | grep -i liquorix [ 0.000000] Linux version 4.10.0-14.1-liquorix-amd64 (steven@liquorix.net) (gcc version 6.3.0 20170415 (Debian 6.3.0-14) ) #1 ZEN SMP PREEMPT liquorix 4.10-3 (2017-05-04) [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.10.0-14.1-liquorix-amd64 root=UUID=93fafc44-0513-4ab4-9a45-21550ab068db ro intel_pstate=disable quiet top - 10:40:15 up 7 min, 1 user, load average: 0.05, 0.12, 0.09 dmesg | grep -i liquorix [ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.9.0-23.1-liquorix-amd64 root=UUID=93fafc44-0513-4ab4-9a45-21550ab068db ro quiet This is a physical machine nproc 8 processor : 7 vendor_id : GenuineIntel cpu family : 6 model : 42 model name : Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz stepping : 7 microcode : 0x1b cpu MHz : 1600.000 cache size : 8192 KB it should be idle.. and the old kernel it is.. new 4.10 it's not.. every machine I put it on.. Can't imagine it's only me.. Back to top |
|||||
linux-image-4.9.0-23.1-liquorix-amd64
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors conservative userspace powersave ondemand performance schedutil cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor ondemand cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009 Report errors and bugs to cpufreq@vger.kernel.org, please. analyzing CPU 0: driver: acpi-cpufreq CPUs which run at the same hardware frequency: 0 CPUs which need to have their frequency coordinated by software: 0 maximum transition latency: 10.0 us. hardware limits: 1.60 GHz - 3.40 GHz available frequency steps: 3.40 GHz, 3.40 GHz, 3.20 GHz, 3.00 GHz, 2.80 GHz, 2.60 GHz, 2.40 GHz, 2.20 GHz, 2.00 GHz, 1.80 GHz, 1.60 GHz available cpufreq governors: conservative, userspace, powersave, ondemand, performance, schedutil current policy: frequency should be within 1.60 GHz and 3.40 GHz. The governor "ondemand" may decide which speed to use within this range. current CPU frequency is 1.60 GHz. linux-image-4.10.0-14.1-liquorix-amd64 cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors performance powersave cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor powersave cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009 Report errors and bugs to cpufreq@vger.kernel.org, please. analyzing CPU 0: driver: intel_pstate CPUs which run at the same hardware frequency: 0 CPUs which need to have their frequency coordinated by software: 0 maximum transition latency: 0.97 ms. hardware limits: 1.60 GHz - 3.80 GHz available cpufreq governors: performance, powersave current policy: frequency should be within 1.60 GHz and 3.80 GHz. The governor "powersave" may decide which speed to use within this range. current CPU frequency is 1.60 GHz. Back to top |
|||||
I just tested that "intel_pstate=disable" boot cheat with my own Jessie-backported (uses gcc-4.9) Liquorix 4.10-3, and it did work as advertised and fell back to the cpufreq governors. That seems a simple enough workaround.
Back to top |
|||||
Agreed that does get governors to show:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors conservative userspace powersave ondemand performance schedutil cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor ondemand But I still have a *load* that's the problem.. load average: 1.37, 1.17, 0.55 the machine will level off between 1.75 and 1.85 I have a little internal webserver that mysql makes the machine 8.0 load.. only on the 4.10 kernel.. 4.9 it will be a 0.0 load.. Do you *not* have an increased load on the 4.10 kernel.. That is my problem.. the increased load. Back to top |
|||||
top - 18:02:04 up 1:44, 2 users, load average: 1.85, 1.85, 1.85
Tasks: 201 total, 1 running, 200 sleeping, 0 stopped, 0 zombie :'( [ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.10.0-14.1-liquorix-amd64 root=UUID=93fafc44-0513-4ab4-9a45-21550ab068db ro intel_pstate=disable quiet Back to top |
|||||
Yep, this is an anomaly of how MuQSS works. It accounts for CPU time much differently than CFS does. Whether it's worse or better is up for debate.
For instance, on the ondemand governor, I had to set the full speed percent to 45 (out of 100), in order for it to scale the CPU frequencies properly. Without doing that, MuQSS would end end up pegging most processes at a lower frequency, reducing performance. But what you have here is that the load seems higher than average. What I would do is check your temperatures and average frequencies. That will tell you what's really happening. Higher temperatures means more work is being done (or more power is being wasted). Especially if it's voltage, that's less battery life entirely. Back to top |
|||||
I can't see any difference in the CPU temperature at idle when I boot to the different power handlers. With cpufreq, I can also pin the frequency at many different levels and the temp won't budge at idle, from 400 MHz to the 2.8 GHz turbo mode. This is with an i5-6200u Skylake processor.
Back to top |
|||||
AMD also affected
I also noticed this problem with the 4.10 kernel, but I'm using an AMD CPU. Full system specs are below.
* As reported by others, my idle load is now about 1.5 whereas it was near 0 with kernel 4.9. * The total CPU usage on all cores reported by top/htop is much higher than the aggregate CPU usage of all processes. * At least 3 out of 6 cores are always in p0 state * Idle CPU temperature is up about 10% * The system seems to be using more power than before Is this intended behavior? :: Code :: System: Host: hidden Kernel: 4.9.0-23.1-liquorix-amd64 x86_64 (64 bit)
Desktop: MATE 1.16.1 Distro: Linux Mint 18.1 Serena Machine: Mobo: Gigabyte model: GA-880GA-UD3H v: x.x Bios: Award v: F7 date: 11/24/2010 CPU: Hexa core AMD Phenom II X6 1055T (-MCP-) speed/max: 800/2800 MHz Graphics: Card: NVIDIA GM107 [GeForce GTX 750 Ti] Display Server: X.Org 1.18.4 driver: nvidia Resolution: 2560x1440@59.95hz, 2560x1440@59.95hz GLX Renderer: GeForce GTX 750 Ti/PCIe/SSE2 GLX Version: 4.5.0 NVIDIA 381.09 Network: Card: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller driver: r8169 Drives: HDD Total Size: 21124.2GB (25.1% used) RAID: Devices: 1: /dev/md3 2: /dev/md0 Info: Processes: 262 Uptime: 18 min Memory: 1780.1/12015.3MB Client: Shell (bash) inxi: 2.2.35 Back to top |
|||||
All times are GMT - 8 Hours
|