S pomocí chatGPT se mi povedlo vytvořit tuhle utilitku pro .bashrc a .profile
Vypisuje aktuální stav v procentech. Nepovedlo se mi to udělat na setiny, protože to na Mintu 20 hlásilo chybu (už si nepamatuji jakou, myslím že to byla chyba tokenu). Utilitku využívám jen prvních 25-30 minut protože mám linux spuštěný jako VM pod Windowx XP a začít pracovat s prohlížečem mohu až uplynutí času. Takže jak se objeví zelená barva textu s aktivitou procesoru v procentech, tak vím, že mohu začít pracovat. Do budoucna uvažuji že bych přidal ještě údaj kolik zbývá volné paměti a automaticky by se mohl spustit úklid (uvolnění paměti) když kriticky dochází. Jinak to dělám ručně ten úklid ale je lepší to spustit nejpozději když je 250M volné.
# Funkce barevně vypíše aktivitu
declare -f mpstat_activity
mpstat_activity() {
local idle=$(mpstat | awk 'NF >= 1 {idle += $(NF)} END {print idle}')
local activity=$((100 - idle))
if ((activity < 10)); then
echo -e "\e[32m${activity}%\e[0m" # Zelená 32
elif ((activity < 12)); then
echo -e "\e[33m${activity}%\e[0m" # Žlutá; je špinavě žlutá
elif ((activity < 14)); then
echo -e "\e[33m${activity}%\e[0m" # Oranžová 33
else
echo -e "\e[31m${activity}%\e[0m" # Červená 31
fi
}
PS1='$(mpstat_activity) $ '
# Spustit po startu na pozadí
declare -f mp
mp() {
local duration=1800 # Délka trvání v sekundách (30 minut)
local interval1=240 # Interval prvních 9 minut (4 minuty)
local interval2=180 # Interval dalších 12 minut (3 minuty)
local interval3=90 # Interval po uplynutí toho času (1.5 minut)
local start_time=$(date +%s)
mpstat_activity # První volání
while true; do
local current_time=$(date +%s)
local elapsed_time=$((current_time - start_time))
if ((elapsed_time <= interval1)); then
sleep "$interval1"
elif ((elapsed_time <= interval1 + interval2)); then
sleep "$interval2"
elif ((elapsed_time <= duration)); then
sleep "$interval3"
else
break # Trvání skončilo, ukončení smyčky
fi
mpstat_activity
done
}
# Funkce pro ukončení
declare -f mp_exit
mp_exit() {
unset -f mp # Odstranění funkce `mp` ze zásobníku
echo "Monitoring procesoru ukončen."
}
# Přidání příkazů mp a mp_exit do .bashrc
alias mp='mp'
alias mp_exit='mp_exit'
mp &
Nikdo z komunity nepřišel na to co přesně tak dlouho dělá. Paměť je volná a cache jsem vypnul, jede to rychleji bez diskové cache. Pokilloval jsem všechny možné programy a procesy co jsem nepotřeboval. Po té půlhodině to jede docela dobře na 3.5 GB RAM. Mám tu smůlu že jsem zrovna narazil na tento limit. O pár stovek více, bylo by to v pohodě. Takhle zvládám jen YT, FB, ChatGPT, xed a subl. (Volba je mezi FB a YT obě současně spustit nemohu).
Citace od: Jan Fikar kdy 20. 07. 2023, 22:46:06
Citace od: exkalibr kdy 20. 07. 2023, 12:34:34
Nikdo z komunity nepřišel na to co přesně tak dlouho dělá. Paměť je volná a cache jsem vypnul, jede to rychleji bez diskové cache. Pokilloval jsem všechny možné programy a procesy co jsem nepotřeboval. Po té půlhodině to jede docela dobře na 3.5 GB RAM. Mám tu smůlu že jsem zrovna narazil na tento limit. O pár stovek více, bylo by to v pohodě. Takhle zvládám jen YT, FB, ChatGPT, xed a subl. (Volba je mezi FB a YT obě současně spustit nemohu).
co říká systemd-analyze blame ?
jestli to je virtuál, tak co mu dát víc RAM?
je nějaký důvod, aby to bylo jako virtuál na Windows, ještě k tomu na XP?
Víc RAM nejde, tak jak to mám je to optimální.
systemd-analyze
Startup finished in 9.512s (kernel) + 41.629s (userspace) = 51.142s
graphical.target reached after 41.596s in userspace
$ systemd-analyze blame
20.024s udisks2.service >
18.643s networkd-dispatcher.service >
13.719s fwupd-refresh.service >
12.480s accounts-daemon.service >
11.877s lightdm.service >
11.700s plymouth-quit-wait.service >
10.794s ModemManager.service >
10.155s ubuntu-system-adjustments.service >
9.948s systemd-journal-flush.service >
9.860s dev-sdb3.device >
8.010s avahi-daemon.service >
7.955s NetworkManager.service >
7.857s polkit.service >
7.585s systemd-logind.service >
7.511s wpa_supplicant.service >
4.197s systemd-udevd.service >
3.971s gpu-manager.service >
3.623s grub-common.service >
3.157s networking.service >
2.988s ua-timer.service >
2.733s apport.service
2.588s rsyslog.service >
2.105s ntp.service >
2.076s hddtemp.service >
2.021s systemd-resolved.service >
1.843s apparmor.service >
1.568s e2scrub_reap.service >
1.466s systemd-tmpfiles-clean.service >
1.381s lm-sensors.service >
1.320s systemd-modules-load.service >
1.210s systemd-tmpfiles-setup-dev.service >
1.107s alsa-restore.service >
1.079s dns-clean.service >
1.075s systemd-fsck@dev-disk-by\x2duuid-6c849af9\x2d2ec9\x2d4408\x2da3f7\x2d>
1.039s user@1000.service >
1.029s media-filmy.mount >
1.002s keyboard-setup.service >
992ms systemd-sysctl.service >
964ms media-install.mount >
910ms systemd-tmpfiles-setup.service >
854ms grub-initrd-fallback.service >
783ms systemd-journald.service >
763ms modprobe@efi_pstore.service >
756ms modprobe@ramoops.service >
746ms kerneloops.service >
703ms systemd-udev-trigger.service >
670ms systemd-sysusers.service >
654ms pppd-dns.service >
652ms sysstat.service >
591ms systemd-random-seed.service >
553ms open-vm-tools.service >
515ms lvm2-monitor.service >
471ms kmod-static-nodes.service >
437ms home-user-mnt.mount >
407ms upower.service >
375ms dev-hugepages.mount >
371ms dev-mqueue.mount >
367ms sys-kernel-debug.mount >
363ms sys-kernel-tracing.mount >
355ms blk-availability.service >
299ms ifupdown-pre.service >
276ms setvtrgb.service >
268ms run-vmblock\x2dfuse.mount >
253ms systemd-remount-fs.service >
221ms ufw.service >
150ms systemd-update-utmp.service >
112ms systemd-user-sessions.service >
89ms rtkit-daemon.service >
88ms dev-disk-by\x2duuid-8370ec3e\x2d7e00\x2sdasdasd7.>
86ms console-setup.service >
64ms plymouth-read-write.service >
64ms motd-news.service >
59ms modprobe@chromeos_pstore.service >
42ms user-runtime-dir@1000.service >
42ms openvpn.service >
27ms plymouth-start.service >
25ms systemd-update-utmp-runlevel.service >
24ms finalrd.service >
19ms home.mount >
19ms modprobe@pstore_blk.service >
16ms modprobe@pstore_zone.service >
12ms sys-fs-fuse-connections.mount >
9ms sys-kernel-config.mount
Tak to nevypadá ne žádnou službu systemd.
Jestli je nedostatek RAM problém, tak by se možná vyplatilo zapnout MGLRU. Aktuální LM 21.2 má možnost dát jádro 6.2 a tam už MGLRU je.
https://www.root.cz/zpravicky/mglru-poslano-do-jadra-6-1/ (https://www.root.cz/zpravicky/mglru-poslano-do-jadra-6-1/)
Swap tam máte? Jak je plný? Možná ještě zapnout kompresi zswap.
echo 1 > /sys/module/zswap/parameters/enabled
echo 1 > /sys/module/zswap/parameters/same_filled_pages_enabled
echo zstd > /sys/module/zswap/parameters/compressor #lz4 zstd
echo z3fold > /sys/module/zswap/parameters/zpool #zsmalloc z3fold
echo 25 > /sys/module/zswap/parameters/max_pool_percent #def 20
echo 80 > /sys/module/zswap/parameters/accept_threshold_percent #def 90
echo y > /sys/kernel/mm/lru_gen/enabled