느린 사용자 공간 시작 시간을 분류하는 방법은 무엇입니까?

느린 사용자 공간 시작 시간을 분류하는 방법은 무엇입니까?

내 경험은 매우 느립니다.사용자 공간로딩 시간에 비해핵심로딩 시간은 아래와 같습니다 systemd-analyze.

jnavarro@almanzora:~$ systemd-analyze 
Startup finished in 14.134s (kernel) + 1min 30.675s (userspace) = 1min 44.809s 
graphical.target reached after 12.124s in userspace

내가 물었을 때 systemd-analyze blame"좋은 후보자"를 보지 못했습니다 .

jnavarro@almanzora:~$ systemd-analyze blame
          7.387s NetworkManager-wait-online.service
          6.863s plymouth-quit-wait.service
          1.996s docker.service
          1.966s exim4.service
          1.895s systemd-cryptsetup@luks\foo\bar\zaz\.service
          1.256s fwupd.service
          1.061s upower.service
          1.008s alsa-restore.service
           978ms dev-mapper-almanzora\foo\bar\zaz.device
           756ms udisks2.service

부팅 시간이 느려지는 원인을 어디서 찾을 수 있나요? systemd당신은 더 이상 나를 도울 수 없는 것 같습니다 .

- 편집하다 -

systemd-analyze critical-chain산출:

jnavarro@almanzora:~$ systemd-analyze critical-chain
The time after the unit is active or started is printed after the "@" character.
The time the unit takes to start is printed after the "+" character.

graphical.target @12.124s
└─multi-user.target @12.124s
  └─docker.service @10.127s +1.996s
    └─network-online.target @10.125s
      └─NetworkManager-wait-online.service @2.737s +7.387s
        └─NetworkManager.service @2.416s +319ms
          └─dbus.service @2.413s
            └─basic.target @2.392s
              └─sockets.target @2.392s
                └─docker.socket @2.390s +1ms
                  └─sysinit.target @2.387s
                    └─sys-fs-fuse-connections.mount @22.662s +9ms
                      └─systemd-modules-load.service @548ms +95ms
                        └─systemd-journald.socket @531ms
                          └─-.mount @526ms
                            └─systemd-journald.socket @531ms
                              └─...

답변1

systemd-analyze blame지연되는 애플리케이션/서비스를 식별할 수 없는 경우 systemd 이외의 다른 요인으로 인해 지연이 발생하고 있음을 의미할 수 있습니다.

  • 이는 장치로 인해 발생할 수 있습니다. 모든 이동식 장치(USB 등)를 제거하고 재부팅해 보십시오. 펌웨어/드라이버로 인해 지연이 발생할 수 있습니다.

  • 부팅 후(ctrl+alt+f2) tty2로 로그인하면 데스크탑과 해당 애플리케이션이 로드되지 않도록 할 수 있습니다. 그런 다음 거기에서 ps를 사용하여 실행 중인 항목과 시간을 확인할 수 있습니다.

ps -eo pid,lstart,cmd시작된 작업은 시작 시간/날짜와 함께 나열되며 ps -aux각 프로세스에서 사용하는 CPU 시간을 확인할 수 있습니다.

  • 또한 결함이 있는 하드웨어(예: 하드 드라이브)로 인해 지연이 발생할 수 있습니다. 라이브 CD를 사용하여 확인하거나 다른 커널 버전 또는 다른 배포판을 부팅하여 영향을 받는지 확인할 수도 있습니다.

관련 정보