загрузка: восстановление и оптимизация

Вопросы программного кода и архитектуры Linux

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 14878
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: загрузка: восстановление и оптимизация

Непрочитанное сообщение Olej » 25 окт 2019, 20:00

Olej писал(а):
25 окт 2019, 16:00
И здесь как-раз возникает большая необходимость в анализе загрузки ... а заодно, по случаю, оптимизацияя загрузки под свои конкретные условия (например, приостановка сервисов которые не используются).
С задержками загрузки, после изменений swap раздела, возникающими в 2-х разных аспектах (запись в /etc/fstab + в сгенерированном initramfs), разобрались.

А вот с сервисами по минимуму под конкретный компьютер хочу посмотреть...
Вот что видит на этот счёт systemd:

Код: Выделить всё

olej@ACER:~/2019_WORK/HISTORY/10/25$ sudo systemctl list-units --type service | grep running
accounts-daemon.service                                                                   loaded active running Accounts Service                                                           
alsa-state.service                                                                        loaded active running Manage Sound Card State (restore and store)                                
apache2.service                                                                           loaded active running The Apache HTTP Server                                                     
avahi-daemon.service                                                                      loaded active running Avahi mDNS/DNS-SD Stack                                                    
colord.service                                                                            loaded active running Manage, Install and Generate Color Profiles                                
cron.service                                                                              loaded active running Regular background program processing daemon                               
cups-browsed.service                                                                      loaded active running Make remote CUPS printers available locally                                
cups.service                                                                              loaded active running CUPS Scheduler                                                             
dbus.service                                                                              loaded active running D-Bus System Message Bus                                                   
getty@tty1.service                                                                        loaded active running Getty on tty1                                                              
gpm.service                                                                               loaded active running LSB: gpm sysv init script                                                  
haveged.service                                                                           loaded active running Entropy daemon using the HAVEGE algorithm                                  
irqbalance.service                                                                        loaded active running irqbalance daemon                                                          
lightdm.service                                                                           loaded active running Light Display Manager                                                      
ModemManager.service                                                                      loaded active running Modem Manager                                                              
mpd-sima.service                                                                          loaded active running MPD_sima autoqueue utility                                                 
NetworkManager.service                                                                    loaded active running Network Manager                                                            
nscd.service                                                                              loaded active running Name Service Cache Daemon                                                  
ntp.service                                                                               loaded active running Network Time Service                                                       
osspd.service                                                                             loaded active running OSS Proxy Daemon                                                           
polkit.service                                                                            loaded active running Authorization Manager                                                      
rsyslog.service                                                                           loaded active running System Logging Service                                                     
rtkit-daemon.service                                                                      loaded active running RealtimeKit Scheduling Policy Service                                      
smartd.service                                                                            loaded active running Self Monitoring and Reporting Technology (SMART) Daemon                    
ssh.service                                                                               loaded active running OpenBSD Secure Shell server                                                
systemd-journald.service                                                                  loaded active running Journal Service                                                            
systemd-logind.service                                                                    loaded active running Login Service                                                              
systemd-udevd.service                                                                     loaded active running udev Kernel Device Manager                                                 
udisks2.service                                                                           loaded active running Disk Manager                                                               
unattended-upgrades.service                                                               loaded active running Unattended Upgrades Shutdown                                               
upower.service                                                                            loaded active running Daemon for power management                                                
user@1000.service                                                                         loaded active running User Manager for UID 1000                                                  
wpa_supplicant.service                                                                    loaded active running WPA supplicant                                                             

olej@ACER:~/2019_WORK/HISTORY/10/25$ sudo systemctl list-units --type service | grep running | wc -l
33
А вот что видит в старом стиле sysinit:

Код: Выделить всё

olej@ACER:~$ /sbin/service --status-all | grep [+]
 [ + ]  apache2
 [ + ]  apparmor
 [ + ]  avahi-daemon
 [ + ]  binfmt-support
 [ + ]  cron
 [ + ]  cups
 [ + ]  cups-browsed
 [ + ]  dbus
 [ + ]  gpm
 [ + ]  haveged
 [ + ]  hddtemp
 [ + ]  irqbalance
 [ + ]  kmod
 [ + ]  lightdm
 [ + ]  lm-sensors
 [ + ]  mpd-sima
 [ + ]  network-manager
 [ + ]  nscd
 [ + ]  ntp
 [ + ]  openvpn
 [ + ]  osspd
 [ + ]  procps
 [ + ]  rsyslog
 [ + ]  smartmontools
 [ + ]  ssh
 [ + ]  udev
 [ + ]  unattended-upgrades

olej@ACER:~$ /sbin/service --status-all | grep [+] | wc -l
27
Сразу добавлю, что из стандартного (установочного) набора Debiam мной уже исключены (остановлены):
apt-daily-upgrade.service, apt-daily.service, exim4.service, mariadb.service
И наоборот, мной добавлены сервисы:
ntp.service, smartd.service, ssh.service

Аватара пользователя
Olej
Писатель
Сообщения: 14878
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: загрузка: восстановление и оптимизация

Непрочитанное сообщение Olej » 25 окт 2019, 22:55

Olej писал(а):
25 окт 2019, 20:00
А вот с сервисами по минимуму под конкретный компьютер хочу посмотреть...
Как мне кажется, я в своих условиях вполне могу убрать сервисы:

Код: Выделить всё

olej@ACER:~/2019_WORK/HISTORY/10/22$ sudo systemctl status cron
● cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-10-25 17:15:40 EEST; 5h 31min ago
     Docs: man:cron(8)
 Main PID: 870 (cron)
    Tasks: 1 (limit: 4915)
   Memory: 1.3M
   CGroup: /system.slice/cron.service
           └─870 /usr/sbin/cron -f

окт 25 22:09:01 ACER CRON[10818]: pam_unix(cron:session): session closed for user root
окт 25 22:17:01 ACER CRON[10950]: pam_unix(cron:session): session opened for user root by (uid=0)
окт 25 22:17:01 ACER CRON[10951]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
окт 25 22:17:01 ACER CRON[10950]: pam_unix(cron:session): session closed for user root
окт 25 22:30:01 ACER CRON[11150]: pam_unix(cron:session): session opened for user root by (uid=0)
окт 25 22:30:01 ACER CRON[11151]: (root) CMD ([ -x /etc/init.d/anacron ] && if [ ! -d /run/systemd/system ]; then /usr/sbin/invoke-rc.d anacron s
окт 25 22:30:01 ACER CRON[11150]: pam_unix(cron:session): session closed for user root
окт 25 22:39:01 ACER CRON[11797]: pam_unix(cron:session): session opened for user root by (uid=0)
окт 25 22:39:01 ACER CRON[11798]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessioncle
окт 25 22:39:01 ACER CRON[11797]: pam_unix(cron:session): session closed for user root

olej@ACER:~/2019_WORK/HISTORY/10/22$ sudo systemctl stop cron

olej@ACER:~/2019_WORK/HISTORY/10/22$ sudo systemctl desable cron
Unknown operation desable.

olej@ACER:~/2019_WORK/HISTORY/10/22$ sudo systemctl disable cron
Synchronizing state of cron.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable cron
Removed /etc/systemd/system/multi-user.target.wants/cron.service.

olej@ACER:~/2019_WORK/HISTORY/10/22$ sudo systemctl mask cron
Created symlink /etc/systemd/system/cron.service → /dev/null.

Код: Выделить всё

olej@ACER:~/2019_WORK/HISTORY/10/22$ sudo systemctl status avahi-daemon
● avahi-daemon.service - Avahi mDNS/DNS-SD Stack
   Loaded: loaded (/lib/systemd/system/avahi-daemon.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-10-25 17:15:40 EEST; 5h 35min ago
 Main PID: 864 (avahi-daemon)
   Status: "avahi-daemon 0.7 starting up."
    Tasks: 2 (limit: 4915)
   Memory: 1.3M
   CGroup: /system.slice/avahi-daemon.service
           ├─864 avahi-daemon: running [ACER.local]
           └─907 avahi-daemon: chroot helper

окт 25 17:15:40 ACER avahi-daemon[864]: No service file found in /etc/avahi/services.
окт 25 17:15:40 ACER avahi-daemon[864]: Network interface enumeration completed.
окт 25 17:15:40 ACER avahi-daemon[864]: Server startup complete. Host name is ACER.local. Local service cookie is 2473315401.
окт 25 17:15:40 ACER systemd[1]: Started Avahi mDNS/DNS-SD Stack.
окт 25 17:15:43 ACER avahi-daemon[864]: Joining mDNS multicast group on interface enp2s0.IPv4 with address 192.168.1.103.
окт 25 17:15:43 ACER avahi-daemon[864]: New relevant interface enp2s0.IPv4 for mDNS.
окт 25 17:15:43 ACER avahi-daemon[864]: Registering new address record for 192.168.1.103 on enp2s0.IPv4.
окт 25 17:15:45 ACER avahi-daemon[864]: Joining mDNS multicast group on interface enp2s0.IPv6 with address fe80::c23f:d5ff:fe51:9a5b.
окт 25 17:15:45 ACER avahi-daemon[864]: New relevant interface enp2s0.IPv6 for mDNS.
окт 25 17:15:45 ACER avahi-daemon[864]: Registering new address record for fe80::c23f:d5ff:fe51:9a5b on enp2s0.*.

olej@ACER:~/2019_WORK/HISTORY/10/22$ sudo systemctl stop avahi-daemon
Job for avahi-daemon.service canceled.

olej@ACER:~/2019_WORK/HISTORY/10/22$ sudo systemctl disable avahi-daemon
Synchronizing state of avahi-daemon.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable avahi-daemon
Removed /etc/systemd/system/multi-user.target.wants/avahi-daemon.service.
Removed /etc/systemd/system/sockets.target.wants/avahi-daemon.socket.
Removed /etc/systemd/system/dbus-org.freedesktop.Avahi.service.

olej@ACER:~/2019_WORK/HISTORY/10/22$ sudo systemctl mask avahi-daemon
Created symlink /etc/systemd/system/avahi-daemon.service → /dev/null.

Код: Выделить всё

olej@ACER:~/2019_WORK/HISTORY/10/22$ sudo systemctl status apparmor
● apparmor.service - Load AppArmor profiles
   Loaded: loaded (/lib/systemd/system/apparmor.service; enabled; vendor preset: enabled)
   Active: active (exited) since Fri 2019-10-25 17:15:40 EEST; 5h 37min ago
     Docs: man:apparmor(7)
           https://gitlab.com/apparmor/apparmor/wikis/home/
 Main PID: 806 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 4915)
   Memory: 0B
   CGroup: /system.slice/apparmor.service

окт 25 17:15:40 ACER systemd[1]: Starting Load AppArmor profiles...
окт 25 17:15:40 ACER apparmor.systemd[806]: Restarting AppArmor
окт 25 17:15:40 ACER apparmor.systemd[806]: Reloading AppArmor profiles
окт 25 17:15:40 ACER apparmor.systemd[806]: Skipping profile in /etc/apparmor.d/disable: usr.bin.thunderbird
окт 25 17:15:40 ACER systemd[1]: Started Load AppArmor profiles.

olej@ACER:~/2019_WORK/HISTORY/10/22$ sudo systemctl disable apparmor
Synchronizing state of apparmor.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable apparmor
Removed /etc/systemd/system/sysinit.target.wants/apparmor.service.

olej@ACER:~/2019_WORK/HISTORY/10/22$ sudo systemctl mask apparmor
Created symlink /etc/systemd/system/apparmor.service → /dev/null.

Код: Выделить всё

olej@ACER:~/2019_WORK/HISTORY/10/22$ sudo systemctl status cups-browsed.service
● cups-browsed.service - Make remote CUPS printers available locally
   Loaded: loaded (/lib/systemd/system/cups-browsed.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-10-25 17:15:40 EEST; 5h 40min ago
 Main PID: 957 (cups-browsed)
    Tasks: 3 (limit: 4915)
   Memory: 3.8M
   CGroup: /system.slice/cups-browsed.service
           └─957 /usr/sbin/cups-browsed

окт 25 17:15:40 ACER systemd[1]: Started Make remote CUPS printers available locally.

olej@ACER:~/2019_WORK/HISTORY/10/22$ sudo systemctl stop cups-browsed.service

olej@ACER:~/2019_WORK/HISTORY/10/22$ sudo systemctl disable cups-browsed.service
Synchronizing state of cups-browsed.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable cups-browsed
Removed /etc/systemd/system/multi-user.target.wants/cups-browsed.service.

olej@ACER:~/2019_WORK/HISTORY/10/22$ sudo systemctl mask cups-browsed.service
Created symlink /etc/systemd/system/cups-browsed.service → /dev/null.

Аватара пользователя
Olej
Писатель
Сообщения: 14878
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: загрузка: восстановление и оптимизация

Непрочитанное сообщение Olej » 25 окт 2019, 23:53

Olej писал(а):
25 окт 2019, 22:55
Как мне кажется, я в своих условиях вполне могу убрать сервисы:
И теперь параметры загрузки выглядят так:

Код: Выделить всё

olej@ACER:~$ systemd-analyze
Startup finished in 4.743s (firmware) + 2.439s (loader) + 3.508s (kernel) + 4.594s (userspace) = 15.285s 
graphical.target reached after 4.583s in userspace

olej@ACER:~$ 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 @4.583s
└─multi-user.target @4.583s
  └─hddtemp.service @4.573s +9ms
    └─network-online.target @4.572s
      └─NetworkManager-wait-online.service @1.535s +3.036s
        └─NetworkManager.service @1.273s +258ms
          └─dbus.service @1.252s
            └─basic.target @1.181s
              └─sockets.target @1.181s
                └─uuidd.socket @1.181s
                  └─sysinit.target @1.172s
                    └─systemd-update-utmp.service @1.163s +9ms
                      └─systemd-tmpfiles-setup.service @1.120s +40ms
                        └─local-fs.target @1.117s
                          └─boot-efi.mount @1.104s +12ms
                            └─systemd-fsck@dev-disk-by\x2duuid-200C\x2d8B31.service @1.031s +71ms
                              └─dev-disk-by\x2duuid-200C\x2d8B31.device @978ms
Время загрузки снизилось не сильно, на ~1/2 сек. (там уже нечего сокращать), но это и не было целью.
Главное - освободить неиспользуемые ресурсы.

Аватара пользователя
Olej
Писатель
Сообщения: 14878
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: загрузка: восстановление и оптимизация

Непрочитанное сообщение Olej » 28 окт 2019, 16:41

Olej писал(а):
25 окт 2019, 17:22
15.5 секунд из которых запуск графического DE!
Характерно и интересно... это нужно отметить, что:

- systemd-analyze не включает в итоговое время задержки тайм-аут, указанный для автологина DM (lightdm) ... или оно считает время до временной точки графического запроса login? (я бы на их месте так и сделал ;-) ) - см. автологин при входе;

- но systemd-analyze полностью включает в итоговое время загрузки ту паузу меню загрузчика GRUB, которую вы допускаете на старте системы...

- вот результат, когда я практически мгновенно выбираю дефаултную позицию меню GRUB нажатием Enter:

Код: Выделить всё

olej@ACER:~$ systemd-analyze
Startup finished in 4.738s (firmware) + 2.403s (loader) + 3.455s (kernel) + 4.505s (userspace) = 15.103s 
graphical.target reached after 4.495s in userspace

- а вот другой результат, когда GRUB полностью выжидает свой указанный тайм-аут, и только после этого идёт в загрузку (ту же дефаултную):

Код: Выделить всё

olej@ACER:~$ systemd-analyze
Startup finished in 4.740s (firmware) + 6.028s (loader) + 3.492s (kernel) + 4.692s (userspace) = 18.953s 
graphical.target reached after 4.680s in userspace
- разница в том и другом случае - 4 сек., которые (примерно) и указаны как тайм-аут меню GRUB:

Код: Выделить всё

root@ACER:/etc/default# cat /etc/default/grub | grep TIMEOUT
GRUB_TIMEOUT=5

Это всё нужно знать при интерпретации результатов анализа времён загрузки!

Аватара пользователя
Olej
Писатель
Сообщения: 14878
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: загрузка: восстановление и оптимизация

Непрочитанное сообщение Olej » 19 июл 2020, 13:06

Дальше об оптимизации времени загрузки - на примере Mint 20, который после 6-7 лет обновлений (а не переустановок) оказался сильно перегружен сервисами ... да и вообще пакетами программ (накопленное ;-) ). Кроме того, там, по-старинке, ещё остались диски HDD, механические (хоть и хорошие по показателям), что замедляет все начальные процессы (и теперь, после SSD на всех остальных компьютерах, это уже кажется "слишком медленно" :lol: ).

Это обсуждение - продолжение того что было при обновлении Mint 20: Mint 20.
Но это всё применимо и к любому другому дистрибутиву Linux.

Аватара пользователя
Olej
Писатель
Сообщения: 14878
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: загрузка: восстановление и оптимизация

Непрочитанное сообщение Olej » 19 июл 2020, 13:18

Olej писал(а):
19 июл 2020, 13:06
Дальше об оптимизации времени загрузки
Некоторое улучшение времени загрузки (на 4-5 сек. ... но при общем времени 30-50 сек. это уже существенно) можно достичь такими трюками (не относящимися к сервисам):

1. Initramfs - это временная файловая система, использующаяся ядром при начальной загрузке.
Загрузчик загружает в память ядро и образ initramfs, и начальная загрузка системы происходит из этого образа. Соответственно, чем меньше лишнего в этом образе - тем быстрее будет загружаться система и тем меньше она будет требовать памяти на начальном этапе.
Вот "до того" ;-) :

Код: Выделить всё

olej@nvidia:~$ ls -l /boot/initrd.img-`uname -r`
-rw-r--r-- 1 root root 85969398 июл 16 19:45 /boot/initrd.img-5.4.0-40-generic
Нужно заменить в /etc/initramfs-tools/initramfs.conf строку MODULES=most на MODULES=dep:

Код: Выделить всё

olej@nvidia:~$ cat  /etc/initramfs-tools/initramfs.conf | grep MODULES=
#MODULES=most
MODULES=dep
MODULES=dep означает, что будет предпринята попытка вычислить минимально нужный, рабочий набор ФС и драйверов.
И в терминале вызываем перегенерацию загрузочных образов:

Код: Выделить всё

root@nvidia:/etc/initramfs-tools# update-initramfs -k all -u
update-initramfs: Generating /boot/initrd.img-5.4.0-40-generic
Warning: No support for locale: ru_RU.utf8
update-initramfs: Generating /boot/initrd.img-5.3.0-62-generic
Warning: No support for locale: ru_RU.utf8
Теперь стало:

Код: Выделить всё

olej@nvidia:~$ ls -l /boot/initrd.img-`uname -r`
-rw-r--r-- 1 root root 68560905 июл 19 12:41 /boot/initrd.img-5.4.0-40-generic
Видно, что загрузочный образ уменьшился около 25%.
В дальнейшем, при появлении новых ядер сборка initramfs будет происходит автоматически и не требовать дополнительных команд.

2. Проверка файловых систем тоже может занять некоторое время. Оставляем проверку на ошибки только для корня. Для остальных разделов (у меня это /home) начальную проверку убираем (если что не так - это можно потом сделать вручную). Для этого открой файл /etc/fstab и приведи строчку для корня к такому виду:

Код: Выделить всё

olej@nvidia:~$ cat /etc/fstab | grep /home
# /home was on /dev/sda2 during installation
#UUID=3ee8f840-4b98-4984-8ab2-b4aa4cb2db1e /home           ext4    defaults        0       2
UUID=3ee8f840-4b98-4984-8ab2-b4aa4cb2db1e /home           ext4    defaults        0       0
Последний параметр отвечает за проверку, 1 - проверять, 0 - не проверять. Установи для всех других разделов 0.

Аватара пользователя
Olej
Писатель
Сообщения: 14878
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: загрузка: восстановление и оптимизация

Непрочитанное сообщение Olej » 19 июл 2020, 13:21

Olej писал(а):
19 июл 2020, 13:18
Некоторое улучшение времени загрузки (на 4-5 сек. ... но при общем времени 30-50 сек. это уже существенно) можно достичь такими трюками (не относящимися к сервисам):
Было:

Код: Выделить всё

olej@nvidia:~$ systemd-analyze blame | head -n25
11.377s dev-sda1.device
 5.871s systemd-journal-flush.service
 5.259s systemd-udevd.service
 4.327s tor@default.service
 3.896s systemd-resolved.service
 3.095s NetworkManager-wait-online.service
 3.029s udisks2.service
...

olej@nvidia:~$ systemd-analyze
Startup finished in 5.783s (kernel) + 31.239s (userspace) = 37.022s
graphical.target reached after 30.466s in userspace
Стало:

Код: Выделить всё

olej@nvidia:~$ systemd-analyze blame | head -n25
10.699s dev-sda1.device                                                          
10.328s plymouth-start.service                                                   
 4.773s plymouth-read-write.service                                              
 4.276s systemd-udevd.service                                                    
 3.288s tor@default.service                                                      
 3.086s udisks2.service                                                          
 3.035s NetworkManager.service                                                   
 3.031s NetworkManager-wait-online.service                                       
...

olej@nvidia:~$ systemd-analyze
Startup finished in 5.609s (kernel) + 28.522s (userspace) = 34.131s 
graphical.target reached after 28.509s in userspace
Не Бог-весть что, но >10% времени загрузки сэкономили на ровном месте :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 14878
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: загрузка: восстановление и оптимизация

Непрочитанное сообщение Olej » 25 авг 2021, 16:47

Olej писал(а):
19 июл 2020, 13:21
Стало:
На том же компьютере, после переноса системы на SSD + через год активной разработческой работы:

Код: Выделить всё

olej@nvidia:~$ inxi -Dxxx
Drives:    Local Storage: total: 387.53 GiB used: 277.38 GiB (71.6%) 
           ID-1: /dev/sda vendor: Silicon Power model: SPCC Solid State Disk size: 238.47 GiB speed: 3.0 Gb/s 
           serial: 0E74070A14BC00128320 rev: 61.3 scheme: MBR 
           ID-2: /dev/sdb vendor: Seagate model: STM3160318AS size: 149.05 GiB speed: 3.0 Gb/s rotation: 7200 rpm 
           serial: 9VY0E3WK rev: CC35 scheme: MBR 

Код: Выделить всё

olej@nvidia:~/2021_WORK/ACCOUNTS/Yandex$ systemd-analyze
Startup finished in 35.342s (kernel) + 8.429s (userspace) = 43.771s 
graphical.target reached after 6.280s in userspace
Что не сильно радует :-(
Хотя для выполнявшихся работ там активно использовались запущенные NFS и FTP сервера:

Код: Выделить всё

olej@nvidia:~/2021_WORK/ACCOUNTS/Yandex$ systemd-analyze blame | head -n 25
5.813s fstrim.service                                                                  
3.271s man-db.service                                                                  
2.413s NetworkManager-wait-online.service                                              
2.276s udisks2.service                                                                 
1.961s mintupdate-automation-autoremove.service                                        
1.693s accounts-daemon.service                                                         
1.534s ubuntu-system-adjustments.service                                               
1.510s pure-ftpd.service                                                               
1.153s nfs-server.service                                                              
1.141s NetworkManager.service                                                          
1.133s polkit.service                                                                  
1.045s thermald.service                                                                
1.019s wpa_supplicant.service                                                          
 990ms tor@default.service                                                             
 978ms systemd-logind.service                                                          
 912ms logrotate.service                                                               
 831ms smartmontools.service                                                           
 818ms ModemManager.service                                                            
 807ms dev-sda1.device                                                                 
 803ms home.mount                                                                      
 727ms apt-daily-upgrade.service                                                       
 587ms loadcpufreq.service                                                             
 575ms systemd-resolved.service                                                        
 507ms colord.service                                                                  
 491ms grub-common.service                                  

Код: Выделить всё

olej@nvidia:~/2021_WORK/ACCOUNTS/Yandex$ service --status-all | grep [+]
 [ + ]  acpid
 [ + ]  arpwatch
 [ + ]  binfmt-support
 [ + ]  cpufrequtils
 [ + ]  cron
 [ + ]  cups
 [ + ]  cups-browsed
 [ + ]  dbus
 [ + ]  grub-common
 [ + ]  hddtemp
 [ + ]  irqbalance
 [ + ]  kmod
 [ + ]  lm-sensors
 [ + ]  loadcpufreq
 [ + ]  network-manager
 [ + ]  networking
 [ + ]  nfs-kernel-server
 [ + ]  ntp
 [ + ]  openbsd-inetd
 [ + ]  openvpn
 [ + ]  procps
 [ + ]  pure-ftpd
 [ + ]  rc.local
 [ + ]  resolvconf
 [ + ]  rpcbind
 [ + ]  rsyslog
 [ + ]  sddm
 [ + ]  smartmontools
 [ + ]  ssh
 [ + ]  sysstat
 [ + ]  tor
 [ + ]  udev
 [ + ]  virtualbox

Аватара пользователя
Olej
Писатель
Сообщения: 14878
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: загрузка: восстановление и оптимизация

Непрочитанное сообщение Olej » 03 сен 2021, 19:26

Olej писал(а):
25 авг 2021, 16:47
Что не сильно радует

Код: Выделить всё

olej@nvidia:~/2021_WORK/ACCOUNTS/Yandex$ systemd-analyze blame | head -n 25
5.813s fstrim.service
...
Меня здесь смущает тримингование системного диска SSD, которое делается при каждой (что по-моему совсем не обязательно) перезагрузке:

Код: Выделить всё

root@nvidia:/etc/systemd# inxi -Dxxx
Drives:    Local Storage: total: 387.53 GiB used: 275.56 GiB (71.1%) 
           ID-1: /dev/sda vendor: Silicon Power model: SPCC Solid State Disk size: 238.47 GiB speed: 3.0 Gb/s 
           serial: 0E74070A14BC00128320 rev: 61.3 temp: 33 C scheme: MBR 
           ID-2: /dev/sdb vendor: Seagate model: STM3160318AS size: 149.05 GiB speed: 3.0 Gb/s rotation: 7200 rpm 
           serial: 9VY0E3WK rev: CC35 temp: 32 C scheme: MBR 

Код: Выделить всё

root@nvidia:/etc/systemd# df
Файл.система   1K-блоков Использовано Доступно Использовано% Cмонтировано в
udev             1874212            0  1874212            0% /dev
tmpfs             382220         6324   375896            2% /run
/dev/sda1       70423668     56152152 10671148           85% /
tmpfs            1911096       130160  1780936            7% /dev/shm
tmpfs               5120            4     5116            1% /run/lock
tmpfs            1911096            0  1911096            0% /sys/fs/cgroup
/dev/sda2      175447720    139149516 27472572           84% /home
/dev/sdb1       50148888     31467692 16104056           67% /home/olej/Загрузки
tmpfs             382216           16   382200            1% /run/user/1000
/dev/sdb2      103293200     62172124 36265120           64% /run/timeshift/backup

Код: Выделить всё

root@nvidia:/etc/systemd# hdparm -I /dev/sda | grep TRIM
	   *	Data Set Management TRIM supported (limit 8 blocks)

Код: Выделить всё

root@nvidia:/etc/systemd# lsblk --discard
NAME   DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda           0      512B       2G         0
├─sda1        0      512B       2G         0
└─sda2        0      512B       2G         0
sdb           0        0B       0B         0
├─sdb1        0        0B       0B         0
└─sdb2        0        0B       0B         0
zram0         0        4K       2T         0
zram1         0        4K       2T         0
zram2         0        4K       2T         0
zram3         0        4K       2T         0

Код: Выделить всё

root@nvidia:/etc/systemd# systemctl is-enabled fstrim.service
static

Аватара пользователя
Olej
Писатель
Сообщения: 14878
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: загрузка: восстановление и оптимизация

Непрочитанное сообщение Olej » 03 сен 2021, 19:51

Olej писал(а):
03 сен 2021, 19:26
тримингование системного диска SSD, которое делается при каждой (что по-моему совсем не обязательно) перезагрузке:
Читаем ... "что по чём" :lol: ... по публикациям
Ручное тримингование SSD:

Код: Выделить всё

root@nvidia:/etc/systemd# /sbin/fstrim --fstab --verbose
/home: 34,6 GiB (37160452096 bytes) trimmed on /dev/sda2
/: 393,5 MiB (412565504 bytes) trimmed on /dev/sda1
Удивляет (и про это пишут) что в десктопном Linux (где основная работа идёт в /home) автоматическое тремингование (майнтейнерами дистрибутива) установлено на системный диск, но не установлено на /home:

Код: Выделить всё

root@nvidia:/etc/systemd# df | grep sda
/dev/sda1       70423668     56153352 10669948           85% /
/dev/sda2      175447720    139155880 27466208           84% /home
Далее:
Активация discard (TRIM) на Linux для SSD
13 апреля 2020 в 14:41
... в ОС построенных на базе ядра Linux предусмотрено два метода управления на уровне файловых систем:

- discard — устанавливается как опция монтировании файловой системы. Позволяет ядру Linux сразу отправлять команду TRIM на устройство, как только об этом сообщит файловая система.
- fstrim — утилита которая запускается вручную или по расписанию как сервис ОС, отправляет список удаленных блоков с ФС для зачистки их на устройстве.

Для включения fstrim достаточно активировать сервис fstrim.service в systemd, но лучше вместо сервиса, который будет висеть в памяти, использовать таймер fstrim.timer который будет запускать еженедельный TRIM.
Хотелось бы запретить старт сервиса при каждой перезагрузке:

Код: Выделить всё

root@nvidia:/etc/systemd# systemctl is-enabled fstrim.service
static

Ответить

Вернуться в «Linux изнутри»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя