Score:0

High CPU usage by systemd on Ubuntu Desktop v 22.10

sb flag

I'm running Ubuntu Desktop and I've noticed that systemd periodically consumes a lot of CPU. This seems to happen periodically and without any obvious triggers. In the past, when I've restarted the machine, the problem disappeared, but I want to understand why this is happening. I used strace to investigate and found that when the CPU usage became high (I know this because of the sound of the CPU fan), different calls of newfstatat were made and some of them with errors ("file not found"). Can anyone provide some guidance on how to diagnose and fix this issue?


Edit:

systemd version:

systemd 251 (251.4-1ubuntu7.3)
+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY -P11KIT -QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD -BPF_FRAMEWORK -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified

htop command screenshot

systemd-cgtop screenshot

$ sudo strace -c -p 2268

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
100,00    0,000001           0        56        34 newfstatat
  0,00    0,000000           0         8           close
  0,00    0,000000           0         4           recvmsg
  0,00    0,000000           0         7           gettid
  0,00    0,000000           0         6           epoll_wait
  0,00    0,000000           0         4           pipe2
  0,00    0,000000           0        40           getrandom
------ ----------- ----------- --------- --------- ----------------
100,00    0,000001           0       125        34 total

$ sudo strace -fvttTyy -p 2268

strace: Process 2268 attached
14:40:14.635234 gettid()                = 2268 <0.000017>
14:40:14.635365 epoll_wait(4<anon_inode:[eventpoll]>, [{events=EPOLLIN, data={u32=2321867760, u64=94577501725680}}], 86, -1) = 1 <22.626761>
14:40:37.262325 recvmsg(15<NETLINK:[KOBJECT_UEVENT:2268]>, {msg_name={sa_family=AF_NETLINK, nl_pid=308024, nl_groups=0x000002}, msg_namelen=128 => 12, msg_iov=[{iov_base=[{prefix="libudev", magic=htonl(0xfeedcafe), header_size=40, properties_off=40, properties_len=947, filter_subsystem_hash=htonl(0xf0031db7), filter_devtype_hash=htonl(0x7bcbc5ee), filter_tag_bloom_hi=htonl(0x2000400), filter_tag_bloom_lo=htonl(0x10800000)}, "UDEV_DATABASE_VERSION=1\0ACTION=c"...], iov_len=8192}], msg_iovlen=1, msg_control=[{cmsg_len=28, cmsg_level=SOL_SOCKET, cmsg_type=SCM_CREDENTIALS, cmsg_data={pid=356244, uid=0, gid=0}}], msg_controllen=32, msg_flags=0}, 0) = 987 <0.000064>
14:40:37.263883 getrandom("\x9b\xd1\x64\x37\x24\x2f\x36\xfe\x59\x7b\x32\x6d\x08\x97\x2b\xce", 16, GRND_INSECURE) = 16 <0.000055>
14:40:37.264086 getrandom("\xe6\x88\x2a\xe3\xc8\xe9\x62\x15\x83\xf2\x27\xc9\x70\xf1\x2f\xc3", 16, GRND_INSECURE) = 16 <0.000051>
14:40:37.264248 getrandom("\x63\x14\xa7\xc9\x5f\xe6\x60\xb5\xf2\xcd\xdc\x1b\x22\xe0\x91\xfb", 16, GRND_INSECURE) = 16 <0.000051>
14:40:37.264452 pipe2([22<pipe:[3287284]>, 23<pipe:[3287284]>], O_NONBLOCK|O_CLOEXEC) = 0 <0.000073>
14:40:37.264657 pipe2([24<pipe:[3287286]>, 25<pipe:[3287286]>], O_NONBLOCK|O_CLOEXEC) = 0 <0.000057>
14:40:37.264860 getrandom("\x78\xc5\xf6\xfd\x29\xa3\x15\x9a\x7f\x53\xec\x31\xad\x9e\x7c\xc5", 16, GRND_INSECURE) = 16 <0.000052>
14:40:37.265038 getrandom("\xed\x43\xba\x70\xef\x28\x9a\x3f\x01\x1c\x39\xcc\x51\x4e\x89\xa3", 16, GRND_INSECURE) = 16 <0.000052>
14:40:37.265277 getrandom("\x96\x15\xc3\xb0\x46\x67\xef\x77\x4a\x9c\xe3\x18\xb8\xf5\xb4\x33", 16, GRND_INSECURE) = 16 <0.000049>
14:40:37.265591 getrandom("\x59\x7f\x23\xeb\x76\xea\x81\x82\xed\x4b\x01\x8e\xe5\xfa\x7d\x5c", 16, GRND_INSECURE) = 16 <0.000063>
14:40:37.266157 getrandom("\x7b\xae\xc6\x5c\x39\x01\x37\x03\x35\xc1\xbf\x89\xd8\xf4\x33\x5d", 16, GRND_INSECURE) = 16 <0.000055>
14:40:37.267407 getrandom("\x8b\xf7\x9d\x77\xe7\xfc\x49\x29\xbc\x92\xad\xac\xfb\x80\xe3\x8f", 16, GRND_INSECURE) = 16 <0.000067>
14:40:37.269564 getrandom("\x01\x44\x07\xa8\x8e\xf6\xc5\xe1\xd3\xd4\xf6\x46\x37\x2e\xe8\x44", 16, GRND_INSECURE) = 16 <0.000029>
14:40:37.277204 getrandom("\x89\xa6\xdc\x1f\x5e\xd6\x74\xab\x3b\x3b\x3a\x48\xcb\x6c\xcc\x5f", 16, GRND_INSECURE) = 16 <0.000021>
14:40:37.310595 getrandom("\x38\x40\x5e\x95\xfc\xff\x5e\x76\xda\xc0\x24\x13\x58\xcf\x04\xdb", 16, GRND_INSECURE) = 16 <0.000027>
14:40:37.402512 getrandom("\x70\x25\x9d\x31\x15\xa2\xbe\x60\x35\x96\x5f\x64\x3f\xd8\xd1\x53", 16, GRND_INSECURE) = 16 <0.000056>
14:40:37.748203 getrandom("\x26\x6d\xb2\x58\x07\xe4\x11\x14\xd1\x10\xe3\x11\xbd\x23\x8d\xce", 16, GRND_INSECURE) = 16 <0.000179>
14:40:39.005297 getrandom("\xb5\xf0\xee\x04\x5f\x6f\x84\x7b\x57\x69\x9e\x81\xb9\xf2\x04\xb4", 16, GRND_INSECURE) = 16 <0.000138>
14:40:41.050125 newfstatat(AT_FDCWD</>, "/dev/disk/by-path/pci-0000:00:1d.0-usb-0:1.6:1.0-scsi-0:0:0:0", {st_dev=makedev(0, 0x5), st_ino=363, st_mode=S_IFBLK|0660, st_nlink=1, st_uid=0, st_gid=6, st_blksize=4096, st_blocks=0, st_rdev=makedev(0x8, 0x10), st_atime=1681479637 /* 2023-04-14T14:40:37.277691097+0100 */, st_atime_nsec=277691097, st_mtime=1681479637 /* 2023-04-14T14:40:37.277691097+0100 */, st_mtime_nsec=277691097, st_ctime=1681479637 /* 2023-04-14T14:40:37.277691097+0100 */, st_ctime_nsec=277691097}, 0) = 0 <0.000221>
14:40:41.050959 newfstatat(AT_FDCWD</>, "/dev/disk/by-id/usb-Generic-_Multi-Card_20090516388200000-0:0", {st_dev=makedev(0, 0x5), st_ino=363, st_mode=S_IFBLK|0660, st_nlink=1, st_uid=0, st_gid=6, st_blksize=4096, st_blocks=0, st_rdev=makedev(0x8, 0x10), st_atime=1681479637 /* 2023-04-14T14:40:37.277691097+0100 */, st_atime_nsec=277691097, st_mtime=1681479637 /* 2023-04-14T14:40:37.277691097+0100 */, st_mtime_nsec=277691097, st_ctime=1681479637 /* 2023-04-14T14:40:37.277691097+0100 */, st_ctime_nsec=277691097}, 0) = 0 <0.000044>
14:40:41.051148 newfstatat(AT_FDCWD</>, "/dev/disk/by-diskseq/18086", 0x7fff5c2fe760, 0) = -1 ENOENT (Aucun fichier ou dossier de ce type) <0.000061>
14:40:41.051926 newfstatat(AT_FDCWD</>, "/home/ubuntu/.config/systemd/user", 0x7fff5c2fe3a0, 0) = -1 ENOENT (Aucun fichier ou dossier de ce type) <0.000168>
14:40:41.052538 newfstatat(AT_FDCWD</>, "/etc/xdg/systemd/user", {st_dev=makedev(0x8, 0x1), st_ino=18352495, st_mode=S_IFDIR|0755, st_nlink=7, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=4096, st_atime=1681357107 /* 2023-04-13T04:38:27.861624256+0100 */, st_atime_nsec=861624256, st_mtime=1677139713 /* 2023-02-23T09:08:33.407382145+0100 */, st_mtime_nsec=407382145, st_ctime=1677139713 /* 2023-02-23T09:08:33.407382145+0100 */, st_ctime_nsec=407382145}, 0) = 0 <0.000122>
14:40:41.052968 newfstatat(AT_FDCWD</>, "/etc/systemd/user", {st_dev=makedev(0x8, 0x1), st_ino=18352495, st_mode=S_IFDIR|0755, st_nlink=7, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=4096, st_atime=1681357107 /* 2023-04-13T04:38:27.861624256+0100 */, st_atime_nsec=861624256, st_mtime=1677139713 /* 2023-02-23T09:08:33.407382145+0100 */, st_mtime_nsec=407382145, st_ctime=1677139713 /* 2023-02-23T09:08:33.407382145+0100 */, st_ctime_nsec=407382145}, 0) = 0 <0.000023>
14:40:41.053169 newfstatat(AT_FDCWD</>, "/run/user/1000/systemd/user", 0x7fff5c2fe3a0, 0) = -1 ENOENT (Aucun fichier ou dossier de ce type) <0.000039>
14:40:41.053280 newfstatat(AT_FDCWD</>, "/run/systemd/user", 0x7fff5c2fe3a0, 0) = -1 ENOENT (Aucun fichier ou dossier de ce type) <0.000038>
14:40:41.053397 newfstatat(AT_FDCWD</>, "/home/ubuntu/.local/share/systemd/user", 0x7fff5c2fe3a0, 0) = -1 ENOENT (Aucun fichier ou dossier de ce type) <0.000033>
14:40:41.053505 newfstatat(AT_FDCWD</>, "/var/lib/flatpak/exports/share/systemd/user", 0x7fff5c2fe3a0, 0) = -1 ENOENT (Aucun fichier ou dossier de ce type) <0.000020>
14:40:41.053650 newfstatat(AT_FDCWD</>, "/usr/local/share/systemd/user", 0x7fff5c2fe3a0, 0) = -1 ENOENT (Aucun fichier ou dossier de ce type) <0.000015>
14:40:41.053729 newfstatat(AT_FDCWD</>, "/usr/share/systemd/user", 0x7fff5c2fe3a0, 0) = -1 ENOENT (Aucun fichier ou dossier de ce type) <0.000018>
14:40:41.053819 newfstatat(AT_FDCWD</>, "/usr/local/lib/systemd/user", 0x7fff5c2fe3a0, 0) = -1 ENOENT (Aucun fichier ou dossier de ce type) <0.000031>
14:40:41.053912 newfstatat(AT_FDCWD</>, "/usr/lib/systemd/user", {st_dev=makedev(0x8, 0x1), st_ino=8259220, st_mode=S_IFDIR|0755, st_nlink=14, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=48, st_size=20480, st_atime=1681357107 /* 2023-04-13T04:38:27.861624256+0100 */, st_atime_nsec=861624256, st_mtime=1681357099 /* 2023-04-13T04:38:19.600985446+0100 */, st_mtime_nsec=600985446, st_ctime=1681357099 /* 2023-04-13T04:38:19.600985446+0100 */, st_ctime_nsec=600985446}, 0) = 0 <0.000021>
14:40:41.054513 getrandom("\x7d\xe1\x15\xfa\x80\xf6\xc4\xeb\x30\xff\xe1\x1a\x32\x1e\xd8\x1c", 16, GRND_INSECURE) = 16 <0.000013>
14:40:41.058269 gettid()                = 2268 <0.000016>
14:40:41.058360 epoll_wait(4<anon_inode:[eventpoll]>, [{events=EPOLLIN, data={u32=2321867760, u64=94577501725680}}], 86, 0) = 1 <0.000041>
14:40:41.058501 recvmsg(15<NETLINK:[KOBJECT_UEVENT:2268]>, {msg_name={sa_family=AF_NETLINK, nl_pid=308024, nl_groups=0x000002}, msg_namelen=128 => 12, msg_iov=[{iov_base=[{prefix="libudev", magic=htonl(0xfeedcafe), header_size=40, properties_off=40, properties_len=947, filter_subsystem_hash=htonl(0xf0031db7), filter_devtype_hash=htonl(0x7bcbc5ee), filter_tag_bloom_hi=htonl(0x2000400), filter_tag_bloom_lo=htonl(0x10800000)}, "UDEV_DATABASE_VERSION=1\0ACTION=c"...], iov_len=8192}], msg_iovlen=1, msg_control=[{cmsg_len=28, cmsg_level=SOL_SOCKET, cmsg_type=SCM_CREDENTIALS, cmsg_data={pid=356244, uid=0, gid=0}}], msg_controllen=32, msg_flags=0}, 0) = 987 <0.000022>
14:40:41.058701 getrandom("\x80\x1d\x29\x7d\x8b\x2e\x72\xd8\x5d\x7b\xe6\x05\xd5\xb9\x02\xcc", 16, GRND_INSECURE) = 16 <0.000016>
14:40:41.058790 getrandom("\x23\xff\x23\x09\x75\xf1\x58\x97\xf7\xe3\xbf\x89\x57\x27\x65\x44", 16, GRND_INSECURE) = 16 <0.000011>
14:40:41.058905 getrandom("\x89\xe9\x02\x45\x62\x60\x97\x26\x1c\x1a\x20\x9a\xe0\xd5\x18\xc3", 16, GRND_INSECURE) = 16 <0.000012>
14:40:48.480425 newfstatat(AT_FDCWD</>, "/dev/disk/by-path/pci-0000:00:1d.0-usb-0:1.6:1.0-scsi-0:0:0:0", {st_dev=makedev(0, 0x5), st_ino=363, st_mode=S_IFBLK|0660, st_nlink=1, st_uid=0, st_gid=6, st_blksize=4096, st_blocks=0, st_rdev=makedev(0x8, 0x10), st_atime=1681479637 /* 2023-04-14T14:40:37.277691097+0100 */, st_atime_nsec=277691097, st_mtime=1681479637 /* 2023-04-14T14:40:37.277691097+0100 */, st_mtime_nsec=277691097, st_ctime=1681479637 /* 2023-04-14T14:40:37.277691097+0100 */, st_ctime_nsec=277691097}, 0) = 0 <0.000216>
14:40:48.481153 newfstatat(AT_FDCWD</>, "/dev/disk/by-id/usb-Generic-_Multi-Card_20090516388200000-0:0", {st_dev=makedev(0, 0x5), st_ino=363, st_mode=S_IFBLK|0660, st_nlink=1, st_uid=0, st_gid=6, st_blksize=4096, st_blocks=0, st_rdev=makedev(0x8, 0x10), st_atime=1681479637 /* 2023-04-14T14:40:37.277691097+0100 */, st_atime_nsec=277691097, st_mtime=1681479637 /* 2023-04-14T14:40:37.277691097+0100 */, st_mtime_nsec=277691097, st_ctime=1681479637 /* 2023-04-14T14:40:37.277691097+0100 */, st_ctime_nsec=277691097}, 0) = 0 <0.000053>
14:40:48.481384 newfstatat(AT_FDCWD</>, "/dev/disk/by-diskseq/18087", {st_dev=makedev(0, 0x5), st_ino=363, st_mode=S_IFBLK|0660, st_nlink=1, st_uid=0, st_gid=6, st_blksize=4096, st_blocks=0, st_rdev=makedev(0x8, 0x10), st_atime=1681479637 /* 2023-04-14T14:40:37.277691097+0100 */, st_atime_nsec=277691097, st_mtime=1681479637 /* 2023-04-14T14:40:37.277691097+0100 */, st_mtime_nsec=277691097, st_ctime=1681479637 /* 2023-04-14T14:40:37.277691097+0100 */, st_ctime_nsec=277691097}, 0) = 0 <0.000065>
14:40:48.481599 newfstatat(AT_FDCWD</>, "/home/ubuntu/.config/systemd/user", 0x7fff5c2fe3a0, 0) = -1 ENOENT (Aucun fichier ou dossier de ce type) <0.000043>
14:40:48.481703 newfstatat(AT_FDCWD</>, "/etc/xdg/systemd/user", {st_dev=makedev(0x8, 0x1), st_ino=18352495, st_mode=S_IFDIR|0755, st_nlink=7, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=4096, st_atime=1681357107 /* 2023-04-13T04:38:27.861624256+0100 */, st_atime_nsec=861624256, st_mtime=1677139713 /* 2023-02-23T09:08:33.407382145+0100 */, st_mtime_nsec=407382145, st_ctime=1677139713 /* 2023-02-23T09:08:33.407382145+0100 */, st_ctime_nsec=407382145}, 0) = 0 <0.000047>
14:40:48.481829 newfstatat(AT_FDCWD</>, "/etc/systemd/user", {st_dev=makedev(0x8, 0x1), st_ino=18352495, st_mode=S_IFDIR|0755, st_nlink=7, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=4096, st_atime=1681357107 /* 2023-04-13T04:38:27.861624256+0100 */, st_atime_nsec=861624256, st_mtime=1677139713 /* 2023-02-23T09:08:33.407382145+0100 */, st_mtime_nsec=407382145, st_ctime=1677139713 /* 2023-02-23T09:08:33.407382145+0100 */, st_ctime_nsec=407382145}, 0) = 0 <0.000041>
14:40:48.481936 newfstatat(AT_FDCWD</>, "/run/user/1000/systemd/user", 0x7fff5c2fe3a0, 0) = -1 ENOENT (Aucun fichier ou dossier de ce type) <0.000060>
14:40:48.482063 newfstatat(AT_FDCWD</>, "/run/systemd/user", 0x7fff5c2fe3a0, 0) = -1 ENOENT (Aucun fichier ou dossier de ce type) <0.000023>
14:40:48.482138 newfstatat(AT_FDCWD</>, "/home/ubuntu/.local/share/systemd/user", 0x7fff5c2fe3a0, 0) = -1 ENOENT (Aucun fichier ou dossier de ce type) <0.000072>
14:40:48.482267 newfstatat(AT_FDCWD</>, "/var/lib/flatpak/exports/share/systemd/user", 0x7fff5c2fe3a0, 0) = -1 ENOENT (Aucun fichier ou dossier de ce type) <0.000036>
14:40:48.482363 newfstatat(AT_FDCWD</>, "/usr/local/share/systemd/user", 0x7fff5c2fe3a0, 0) = -1 ENOENT (Aucun fichier ou dossier de ce type) <0.000019>
14:40:48.482453 newfstatat(AT_FDCWD</>, "/usr/share/systemd/user", 0x7fff5c2fe3a0, 0) = -1 ENOENT (Aucun fichier ou dossier de ce type) <0.000013>
14:40:48.482529 newfstatat(AT_FDCWD</>, "/usr/local/lib/systemd/user", 0x7fff5c2fe3a0, 0) = -1 ENOENT (Aucun fichier ou dossier de ce type) <0.000019>
14:40:48.482615 newfstatat(AT_FDCWD</>, "/usr/lib/systemd/user", {st_dev=makedev(0x8, 0x1), st_ino=8259220, st_mode=S_IFDIR|0755, st_nlink=14, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=48, st_size=20480, st_atime=1681357107 /* 2023-04-13T04:38:27.861624256+0100 */, st_atime_nsec=861624256, st_mtime=1681357099 /* 2023-04-13T04:38:19.600985446+0100 */, st_mtime_nsec=600985446, st_ctime=1681357099 /* 2023-04-13T04:38:19.600985446+0100 */, st_ctime_nsec=600985446}, 0) = 0 <0.000017>
14:40:48.483185 getrandom("\x93\xf8\x80\xf8\xaa\xc4\x0a\x50\x17\x69\xb1\x12\xd1\x21\x5d\xb0", 16, GRND_INSECURE) = 16 <0.000034>
14:40:48.487005 gettid()                = 2268 <0.000018>
14:40:48.487095 epoll_wait(4<anon_inode:[eventpoll]>, [], 86, 0) = 0 <0.000069>
14:40:48.630122 close(22<pipe:[3287284]>) = 0 <0.000142>
14:40:48.630574 close(23<pipe:[3287284]>) = 0 <0.000055>
14:40:48.630738 close(24<pipe:[3287286]>) = 0 <0.000019>
14:40:48.630818 close(25<pipe:[3287286]>) = 0 <0.000022>
14:40:48.630906 gettid()                = 2268 <0.000013>
14:40:48.630973 epoll_wait(4<anon_inode:[eventpoll]>, ^Cstrace: Process 2268 detached
 <detached ...>

Thanks.

asktyagi avatar
in flag
Please add more details with logs,
eiro avatar
sb flag
What kind of logs ?
asktyagi avatar
in flag
Use top, sar, strace or any other command output which shows details about cpu consumption etc.
asktyagi avatar
in flag
Please update os version details and systemd version.
eiro avatar
sb flag
systemd 251 (251.4-1ubuntu7.3), Ubuntu 22.10
Peter Zhabin avatar
cn flag
Aren't there any suspicious messages in `dmesg` at the same time? From strace it looks like systemd is trying to get some info on a card reader device so it may indicate it being connected/appearing in the system due to some hardware change and/or faulty cabling..
eiro avatar
sb flag
@PeterZhabin Can hibernation cause such a problem ?
Peter Zhabin avatar
cn flag
@eiro If the device in question (card reader or USB hub it is connected to) does not appropriately exit standby, this could be the case
eiro avatar
sb flag
How can I fix this ?
I sit in a Tesla and translated this thread with Ai:

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.