systemctl --user の実行には数十秒かかります。

systemctl --user の実行には数十秒かかります。

私のサーバーの1つに断続的な問題があり、ログインに約15秒かかります。これは、rootではなく私のユーザーとしてSSHを介して行われます。

もう一度ログインすると「sudo su」に数十秒かかることもある。

最後に、rootではなく私のユーザーとして "systemctl --user"を実行して、要求に応じて問題を再現できることを確認しました。

これが発生すると、systemdプロセスのCPU使用率が100%に上昇することがわかります。

# in htop
    PID USER       PRI  NI  VIRT   RES   SHR S  CPU%▽MEM%   TIME+  Command
 206136 todd        20   0 53680 46120  8656 R  99.0  1.2  6h10:06 /usr/lib/systemd/systemd --user

で全体のプロセスを見ることができますが、strace実際に目立つものはないか、電話を切る/履歴書に関連しているようではありません。私はこれをたくさん見ています。したがって、一部のデータ構造を再割り当て/再配置することもあります。

brk(0x5607dc128000)                     = 0x5607dc128000
brk(0x5607dc149000)                     = 0x5607dc149000

また、完了せずにタイムアウトする場合もあります。

0 %  [via 192.168.99.8] systemctl --user
Failed to list units: Connection timed out

問題をデバッグ/識別するにはどうすればよいですか?

1 %  [via 192.168.99.8] uname -a
Linux bifrost 5.19.10-arch1-1 #1 SMP PREEMPT_DYNAMIC Tue, 20 Sep 2022 15:17:59 +0000 x86_64 GNU/Linux

0 %  [via 192.168.99.8] pacman -Q systemd
systemd 251.4-1

別の詳細 - 私はこの問題を数ヶ月間見続けてきました。コンピュータを再起動しても数日以内に問題が再び発生しないことがわかります。

編集:strace -r相対タイムスタンプを表示すると、犯人を見つけたようです。

     0.000128 getrandom("\xeb\x49\xb5\x3d\x37\x5a\xc4\xd6\x59\x2e\x5c\x5c\x8a\x5a\x35\xfd", 16, GRND_INSECURE) = 16
     0.000141 getrandom("\x04\xa7\xa1\xa9\xe4\xbb\x5c\x2c\xa3\x42\x0c\xf8\x36\xd7\x43\x7d", 16, GRND_INSECURE) = 16
    16.183344 newfstatat(AT_FDCWD, "/dev/disk/by-diskseq/19565", {st_mode=S_IFBLK|0660, st_rdev=makedev(0x8, 0x10), ...}, 0) = 0
     0.000389 newfstatat(AT_FDCWD, "/dev/disk/by-id/usb-Generic-_SD_MMC_MS_PRO_20120926571200000-0:0", {st_mode=S_IFBLK|0660, st_rdev=makedev(0x8, 0x10), ...}, 0) = 0

fstatat("/dev/disk/by-diskseq/19565")しかし、なぜこのように長い時間がかかるのかわかりません。

システムにディスクが1つしかありません。によるとsmartctl -a /dev/sda、エラーはなく、

  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       47363
SMART Error Log Version: 0
No Errors Logged

これは約5.5年の稼働時間に相当します。

編集2:

誰かが/dev/disk/by-diskseqシンボリックリンクについて質問しました。私は彼らが/ dev / sdaを指すと仮定しましたが、そうではありません。

0 % ls -alhi /dev/disk/by-diskseq/
159385 lrwxrwxrwx 1 root root   9 Oct  6 11:45 39685 -> ../../sdb

シンボリックリンク名(39685)は1分ごとに1ずつ増加するようです。どうやらsdb私が知らない何かがあるようです。

0 % lsblk -ap
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
/dev/sda      8:0    0 111.8G  0 disk
├─/dev/sda1   8:1    0   487M  0 part /boot
└─/dev/sda2   8:2    0 111.3G  0 part /
/dev/sdb      8:16   1     0B  0 disk

0 % fdisk -l /dev/sdb
fdisk: cannot open /dev/sdb: No medium found

ああ、USBデバイスだと思いますか?ただし、USBスロットには何も接続されていません。

% udevadm info /dev/sdb
P: /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/1-5.1:1.0/host2/target2:0:0/2:0:0:0/block/sdb
M: sdb
U: block
T: disk
D: b 8:16
N: sdb
L: 0
S: disk/by-diskseq/39699
S: disk/by-path/pci-0000:00:14.0-usb-0:5.1:1.0-scsi-0:0:0:0
S: disk/by-id/usb-Generic-_SD_MMC_MS_PRO_20120926571200000-0:0
Q: 39699
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/1-5.1:1.0/host2/target2:0:0/2:0:0:0/block/sdb
E: DEVNAME=/dev/sdb
E: DEVTYPE=disk
E: DISKSEQ=39699
E: MAJOR=8
E: MINOR=16
E: SUBSYSTEM=block
E: USEC_INITIALIZED=4178478
E: ID_VENDOR=Generic-
E: ID_VENDOR_ENC=Generic-
E: ID_VENDOR_ID=0bda
E: ID_MODEL=SD_MMC_MS_PRO
E: ID_MODEL_ENC=SD\x2fMMC\x2fMS\x20PRO\x20\x20\x20
E: ID_MODEL_ID=0153
E: ID_REVISION=1.00
E: ID_SERIAL=Generic-_SD_MMC_MS_PRO_20120926571200000-0:0
E: ID_SERIAL_SHORT=20120926571200000
E: ID_TYPE=disk
E: ID_INSTANCE=0:0
E: ID_BUS=usb
E: ID_USB_INTERFACES=:080650:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=ums-realtek
E: ID_PATH=pci-0000:00:14.0-usb-0:5.1:1.0-scsi-0:0:0:0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_5_1_1_0-scsi-0_0_0_0
E: DEVLINKS=/dev/disk/by-diskseq/39699 /dev/disk/by-path/pci-0000:00:14.0-usb-0:5.1:1.0-scsi-0:0:0:0 /dev/disk/by-id/usb-Generic-_SD_MMC_MS_PRO_20120926571200000-0:0
E: TAGS=:systemd:
E: CURRENT_TAGS=:systemd:

編集3

sdbファイルが開いたり、接続されていませんdiskbyseq

% lsof | grep sdb
# nothing
% lsof | grep diskseq
# nothing

システムが13日間実行されました。

% uptime
 09:55:33 up 13 days, 22:36,  1 user,  load average: 2.13, 2.08, 2.03

ベストアンサー1

おすすめ記事