Hi Peter,

> > > Processor : Intel(R) Pentium(R) CPU G3420 @ 3.20GHz
> > > Memory    : 8037MB (4978MB used)

As you say, only two, non-HyperThreaded, cores, but plenty of RAM spare.

> > > $ systemd-analyze blame
> > > 3min 12.427s apt-daily.service
> > >       43.818s man-db.service
> > >       29.566s udisks2.service
> > >       28.056s mpd.service
> > >       23.120s networkd-dispatcher.service
> > >       20.561s fwupd-refresh.service
> > >       17.882s snapd.service

Are your main filesystems on a rusty hard drive rather than an SSD?
I'm guessing there are multiple concurrent programs fighting over the
I/O they require and causing the hard drive to spend its time seeking
back and forth, with a little reading and writing in between.

> $ systemd-analyze critical-chain
>
> The time when unit became active or started is printed after the "@"
> character.
> The time the unit took to start is printed after the "+" character.
>
> graphical.target @54.613s
> └─multi-user.target @54.613s
>    └─mpd.service @32.239s +22.372s

That says mpd.service, the Music Player Daemon, took 22 seconds to run.
Perhaps the mpd server is indexing your music collection on start-up.
Rather than have mpd start at boot, you can have it start when first
needed.  This is detected by a client program attempting to contact it
on its socket.
https://wiki.archlinux.org/index.php/Music_Player_Daemon#Socket_activation

To configure it in that way, run

    sudo -i systemctl disable --now mpd.service
    sudo -i systemctl enable --now mpd.socket

mpd.service should no longer appear in ‘systemd-analyze blame’ output
after the next boot.

‘blame’ above also has

> > >       43.818s man-db.service

That's indexing the man pages on your system.  Again, something that
generally need not happen on boot.  It's scheduled by man-db.timer; see
‘systemctl cat man-db.timer’.

‘systemctl list-timers’ in a wide terminal should show man-db.timer,
when it last ran, and when it's next scheduled.  I've altered that here
to run at a set time when I know the PC is likely to be on and fairly
idle.

‘sudo -i systemctl edit man-db.timer’ puts me in an editor with an empty
file where I add the lines

    [Timer]
    OnCalender=
    OnCalendar=20:02
    Persistent=no

Alter ‘20:02’ to suit.  The ‘Persistent=no’ stops systemd running the
timer at boot when it spots it missed a scheduled run during down-time.
Instead, it will wait for the next scheduled time.

Repeating the ‘systemctl cat man-db.timer’ above should show an
‘override.conf’ with your new lines, and ‘systemctl list-timers’ a new
‘next run’ time.

-- 
Cheers, Ralph.

-- 
  Next meeting: Online, Jitsi, Tuesday, 2020-09-01 20:00
  Check to whom you are replying
  Meetings, mailing list, IRC, ...  http://dorset.lug.org.uk
  New thread, don't hijack:  mailto:dorset@mailman.lug.org.uk

Reply via email to