htop icon indicating copy to clipboard operation
htop copied to clipboard

Seeing incorrect offline and online CPUs

Open capriciousduck opened this issue 1 year ago • 5 comments

Hey

I am running htop in an LXC container that uses the Ubuntu Noble image (Ubuntu 24.04). This time, unlike before, htop shows the "offline" CPUs as well.

This is what I expect:

For example, if I allocate 5 CPUs only to the LXC container, htop should show the 5 vCPUs.

This is what I see:

I see the 5 "online" CPUs and all the other CPUs (of the host) are shown as "offline". Often times, more than 5 CPUs show as online. However, top shows the correct amount of CPUs always.

As you can see from the image below more than 5 CPUs are shown as online

Screenshot from 2024-05-03 18-20-05

This is the output of top:

Screenshot from 2024-05-03 18-21-08

Some other info you may find useful

htop version: 3.3.0 os: Ubuntu Noble (Ubuntu 24.04) host kernel version: 6.8.0-31-generic

capriciousduck avatar May 03 '24 12:05 capriciousduck

Can you add the PROCESSOR column to see on which CPU your processes are executed? May be LXC uses more than 5 cores by shuffling load around?

fasterit avatar May 03 '24 14:05 fasterit

The CPU cores is fixed (i.e will be 5 at all times) but yes the load may run on other cores sometimes but lxcfs will abstract this. In the past, I did not see this issue (on Jammy, Focal, etc,).

image

Let me know if you need more information.

capriciousduck avatar May 06 '24 08:05 capriciousduck

This happens even in a KVM machine (also has 5 CPUs). I think this is happening only on Ubuntu Noble as I don't see this issue happening on LXC Jammy container which is also running on the same physical host.

capriciousduck avatar May 06 '24 08:05 capriciousduck

Would adding an option to htop that allows you to "hide offline cpus" be a solution?

589290 avatar Oct 10 '24 18:10 589290

We discussed this internally a while back and while for static offline CPU assignments like within containers this may be of help, it causes a bit of flicker for bare metal systems when their host CPU briefly disables cores and re-enables others. Also, due to the way the CPU meters are currently handled, this would need many changes related to counting header lines needed and actually rendering the correct CPUs for each of the meters. TL;DR: Not worth the effort.

BenBE avatar Oct 11 '24 18:10 BenBE

Via git bisect, I've confirmed this was caused by the interim fix in #1195, which was intended to fix an issue with lxd CPU display, and introduced this unfortunate display of offline CPUs which clutters the CPU meters and is far from optimal. A suggested fix for hiding offline CPUs was suggested in #1195 but never implemented. (I think this would be optimal default behavior, possibly with a config option to toggle this off if anyone actually wants to see a meter for an offline CPU - it's not very informative and just takes real estate away from the active meters)

danielrobbins avatar Jan 19 '25 02:01 danielrobbins