Ubuntu Suomen keskustelualueet
Muut alueet => Yleistä keskustelua => Aiheen aloitti: Tomin - 29.04.18 - klo:17.56
-
Keskustelimme aiemmin toisaalla (https://forum.ubuntu-fi.org/index.php?topic=52613.msg406925#msg406925) Gnomen bugista muistinhallinnan osalta. Se saatiin korjattua (https://feaneron.com/2018/04/20/the-infamous-gnome-shell-memory-leak/) vähän kömpelöllä tavalla. Nyt siitä on julkaistu hyvä kirjoitus (https://ptomato.wordpress.com/2018/04/28/more-memory-more-problems/), jossa selitetään tuota prosessia ja myöskin sen, miksi kyse ei ole muistivuodosta. Lisäksi siinä on sivuttu sitä, miten näitä asioita voidaan hoitaa paremmin jatkossa, sekä kerrottu siitäkin, miten Gnomea kehitetään muistinkäytön suhteen. Jos englanti on hallussa ja asiat kiinnostavat, niin suosittelen lukemaan.
Tein uuden aiheen, koska vanha keskustelu oli Ubuntu Bionicin kehityksestä kertovassa keskustelussa.
-
Ja taas: gnome-panel vie koneen muistista jo puolet, vaikka uptime ei ole kuin 8 päivää:
top - 10:41:44 up 8 days, 17:53, 1 user, load average: 0,43, 0,38, 0,25
Tasks: 350 total, 1 running, 283 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0,6 us, 0,2 sy, 0,0 ni, 99,2 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
KiB Mem : 8055852 total, 511068 free, 6423448 used, 1121336 buff/cache
KiB Swap: 5242876 total, 2908412 free, 2334464 used. 1073748 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2672 ari 20 0 2669980 244452 80224 S 1,3 3,0 173:53.57 Web Content
1576 ari 20 0 743628 137988 127544 S 0,7 1,7 131:47.81 Xorg
1857 ari 9 -11 2930664 9952 7212 S 0,7 0,1 25:46.24 pulseaudio
2176 ari 20 0 3108824 425532 88188 S 0,7 5,3 158:51.24 firefox
2031 ari 20 0 5841304 3,760g 22880 S 0,3 48,9 49:52.43 gnome-panel
2195 ari 20 0 817732 31820 12488 S 0,3 0,4 8:52.04 gnome-terminal-
$ inxi -F
System: Host: ari Kernel: 4.15.0-45-generic x86_64 bits: 64 Desktop: Gnome 3.28.3 Distro: Ubuntu 18.04.2 LTS
Tämä oli jo jonkin aikaa kunnossa, mutta on nyt kolmen viimeisen viikon aikana ruvennut taas kiusaamaan. Mitä ihmettä on taas tekeillä?
-
Ihmettelinkin mikä konetta hidastaa, jos on päällä pitempään. Ei siis yksin Firefox ehkä ainoa syyllinen, vaikka sellaista hieman epäilinkin. Kai pitää sammuttaa aina illalla, kunnes ehtii paneutua tuohon viitattuun ketjuun. Lubuntu voisi olla ratkaisu, mutta ei kyllä Lubuntu 18.10 kovin hyvältä vaikuttunut sitä kun tuli yhdellä vähän nuhasella vanhalla koneella kokeiltua.
-
Panenpa vielä graafina tämän gnomen muistinkäytön viimeaikaisen lisääntymisen: eli vielä joulukuussa konetta oli mahdollista käyttää yli kuukausi, mutta nykyään se pitää buutata viikon välein muistin loppumisen takia...
-
Lubuntu voisi olla ratkaisu, mutta ei kyllä Lubuntu 18.10 kovin hyvältä vaikuttunut sitä kun tuli yhdellä vähän nuhasella vanhalla koneella kokeiltua.
Olet varmaan testannut myös Lubuntu 18.04:sta. Itse tykkään (Lubuntu) 18.04:n oletustyöpöydästä enemmän kuin 18.10:n.
-
Panenpa vielä graafina tämän gnomen muistinkäytön viimeaikaisen lisääntymisen: eli vielä joulukuussa konetta oli mahdollista käyttää yli kuukausi, mutta nykyään se pitää buutata viikon välein muistin loppumisen takia...
Käytät kuvaajan otsikosta päätellen GNOME Flashbackia. Ilmeneekö sama vika normaalissa GNOME Shellissä?
Ihmettelinkin mikä konetta hidastaa, jos on päällä pitempään. Ei siis yksin Firefox ehkä ainoa syyllinen, vaikka sellaista hieman epäilinkin. Kai pitää sammuttaa aina illalla, kunnes ehtii paneutua tuohon viitattuun ketjuun. Lubuntu voisi olla ratkaisu, mutta ei kyllä Lubuntu 18.10 kovin hyvältä vaikuttunut sitä kun tuli yhdellä vähän nuhasella vanhalla koneella kokeiltua.
Onhan niitä vaihtoehtoja vaikka kuinka paljon. MATE ja Xfce ovat hyviä ja suhteellisen kevyitä GNOME:n korvaajia. Jos täydelle työpöytäympäristölle ei ole tarvetta, voi lähteä seikkailemaan vapaammin ikkunamanagerien ihmeelliseen maailmaan.
-
Käytät kuvaajan otsikosta päätellen GNOME Flashbackia. Ilmeneekö sama vika normaalissa GNOME Shellissä?
Ei ole kokeiltu, koska tykkään enemmän Gnome Flashbackistä tai Cinnamonista. Ja noiden kahden väliltä mieluummin kyllä Gnome kuin Cinnamon.
-
Käytät kuvaajan otsikosta päätellen GNOME Flashbackia. Ilmeneekö sama vika normaalissa GNOME Shellissä?
Ei ole kokeiltu, koska tykkään enemmän Gnome Flashbackistä tai Cinnamonista. Ja noiden kahden väliltä mieluummin kyllä Gnome kuin Cinnamon.
gnome-panel on ainakin pelkästään GNOME Flashbackin komponentti. Kannattaa avata ongelmasta bugiraportti Launchpadiin.
Itse en ole havainnut Ubuntu 18.04:n GNOME 3:ssa muistivuotoa.
-
gnome-panel on ainakin pelkästään GNOME Flashbackin komponentti. Kannattaa avata ongelmasta bugiraportti Launchpadiin.
Ihan mielenkiinnosta kirjoitin pikku skriptin, joka nappaa talteen gnome-panel:in varaaman muistin määrän:
#! /bin/bash
# Record memory usage of gnome-panel vs time
while true
do
date +"%H:%M:%S-%d/%m/%Y" | tr -d "\n" >>top
top -b -n1 | grep panel >>top
sleep 1m
done
Ja sen kun tuuppaa gnuplotille, saadaan kiva graafi, joka esittää havainnollisesti, että gnome-panel varaa 3108 kB lisää muistia aina kymmenen minuutin välein. Se tekee 447 MB päivässä, joka tarkoittaa sitä, että PC:ni vaatimaton 8 GB muisti täyttyy 8 päivässä niin paljon, että uusien ohjelmien käynnistäminen ei enää onnistu. Silloin ei auta enää muu kuin buuttaus...
Mihin ihmeeseen tuo ohjelma muka tarvitsee uutta muistia runsaat 3 megaa aina 10 minuutin välein? Vai olisiko sittenkin kyseessä leväperäinen holtiton koodaus? Joku aloittelija asialla?
-
Ihan mielenkiinnosta kirjoitin pikku skriptin, joka nappaa talteen gnome-panel:in varaaman muistin määrän:
Noniin, muistin kulutus meni jo yli gigatavun. Silloin top alkaa käyttää ns. human readable -muotoa. Sitä ei taas gnuplot ymmärrä. Tulee kysymyksiä:
1. Miten top komennetaan komentoriviltä esittämään muistimäärät megatavuina?
2. Miten gnuplotin saa ymmärtämään tätä human readable -muotoa?
Vastaus kysymykseen 1 olisi tärkeämpi...
-
Kannattaa raportoida tuo gnome-panelin muistibugi. Luultavasti sinne on jäänyt jokin muistia dynaaminesti varaava lause ja kyseistä muistia ei muistettu vapauttaa. Saattaa olla hyvinkin helppo selvittää, kun tuo on noin helposti toistettavissa, mutta sitä ei tapahdu, jos lehittäjät eivät siitä tiedä. Useimmat heistä kuitenkin melko varmasti käyttävät tavallista Gnome-istuntoa, johon gnome-panel ei kuulu.
-
1. Miten top komennetaan komentoriviltä esittämään muistimäärät megatavuina?
Vastaan itselleni:
#! /bin/bash
# Record memory usage of gnome-panel vs time
dehumanise() {
for v in "${@:-$(</dev/stdin)}"
do
echo $v | awk \
'BEGIN{IGNORECASE = 0}
function printpower(n,b,p) {printf "%u\n", n*b^p; next}
/[0-9]$/{print $1;next};
/K(iB)?$/{printpower($1, 2, 10)};
/M(iB)?$/{printpower($1, 2, 20)};
/G(iB)?$/{printpower($1, 2, 30)};
/T(iB)?$/{printpower($1, 2, 40)};
/KB$/{ printpower($1, 10, 3)};
/MB$/{ printpower($1, 10, 6)};
/GB$/{ printpower($1, 10, 9)};
/TB$/{ printpower($1, 10, 12)};
/k(iB)?$/{printpower($1, 10, 3)};
/m(iB)?$/{printpower($1, 10, 6)};
/g(iB)?$/{printpower($1, 10, 9)};
/t(iB)?$/{printpower($1, 10, 12)}'
done
}
while true
do
date +"%H:%M:%S-%d/%m/%Y " | tr -d "\n" >>top2
top -b -n1 | grep panel | awk -F' ' '{printf "%10s\n", $6}' | tr , . | dehumanise >>top2
sleep 1m
done
Hoitaa homman. En tosin tiedä, onko se eleganttia vai ei...
-
https://www.phoronix.com/scan.php?page=news_item&px=GNOME-3.32-Features
-
1. Miten top komennetaan komentoriviltä esittämään muistimäärät megatavuina?
Vastaan itselleni:
#! /bin/bash
# Record memory usage of gnome-panel vs time
dehumanise() {
for v in "${@:-$(</dev/stdin)}"
do
echo $v | awk \
'BEGIN{IGNORECASE = 0}
function printpower(n,b,p) {printf "%u\n", n*b^p; next}
/[0-9]$/{print $1;next};
/K(iB)?$/{printpower($1, 2, 10)};
/M(iB)?$/{printpower($1, 2, 20)};
/G(iB)?$/{printpower($1, 2, 30)};
/T(iB)?$/{printpower($1, 2, 40)};
/KB$/{ printpower($1, 10, 3)};
/MB$/{ printpower($1, 10, 6)};
/GB$/{ printpower($1, 10, 9)};
/TB$/{ printpower($1, 10, 12)};
/k(iB)?$/{printpower($1, 10, 3)};
/m(iB)?$/{printpower($1, 10, 6)};
/g(iB)?$/{printpower($1, 10, 9)};
/t(iB)?$/{printpower($1, 10, 12)}'
done
}
while true
do
date +"%H:%M:%S-%d/%m/%Y " | tr -d "\n" >>top2
top -b -n1 | grep panel | awk -F' ' '{printf "%10s\n", $6}' | tr , . | dehumanise >>top2
sleep 1m
done
Hoitaa homman. En tosin tiedä, onko se eleganttia vai ei...
Onnistuu vaikkapa lukemalla varatun muistin määrä kilotavuina /proc/<pid>/status -tiedoston VmRSS-riviltä:
#!/bin/sh
PROCESSNAME="gnome-panel"
while true
do
date +"%H:%M:%S-%d/%m/%Y " | tr -d "\n" >> top2
grep VmRSS /proc/$(pgrep -o "$PROCESSNAME")/status | awk '{printf "%s\n",$2}' >> top2
sleep 1m
done
Muunnos megatavuiksi onnistuu jakamalla 1024:llä tuolla awk:ssa: '{printf "%s\n",$2/1024}'
-
top:ille voi myös interaktiivisesti antaa komentoja muistiyksiköiden vaihtamiseksi ("e" vaihtaa prosessien muistiyksikköä kb->mb->gb..., ja "shift+e" tekee saman yläreunan yhteenvedon yksiköille. Haluamansa valinnat voi tallentaa komennolla "shift+w", joka tallentaa asetukset ~/.toprc tiedostoon.
Näin siis topilla, itse käytän prosessien seurantaan mieluummin htop:ia.