Kirjoittaja Aihe: Gnomen muistinkäyttö  (Luettu 2264 kertaa)

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 10729
    • Profiili
    • Tomin kotisivut
Gnomen muistinkäyttö
« : 29.04.18 - klo:17.56 »
Keskustelimme aiemmin toisaalla Gnomen bugista muistinhallinnan osalta. Se saatiin korjattua vähän kömpelöllä tavalla. Nyt siitä on julkaistu hyvä kirjoitus, 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.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

jarmala

  • Käyttäjä
  • Viestejä: 386
    • Profiili
Vs: Gnomen muistinkäyttö
« Vastaus #1 : 08.03.19 - klo:10.48 »
Ja taas: gnome-panel vie koneen muistista jo puolet, vaikka uptime ei ole kuin 8 päivää:

Koodia: [Valitse]
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ä?

Ubuntu 18.04 LTS, Gnome Flashback Metacity, Xeon E3-1245 V2, 8 GB

Efraiminpoika

  • Käyttäjä
  • Viestejä: 70
    • Profiili
Vs: Gnomen muistinkäyttö
« Vastaus #2 : 08.03.19 - klo:13.43 »
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.

jarmala

  • Käyttäjä
  • Viestejä: 386
    • Profiili
Vs: Gnomen muistinkäyttö
« Vastaus #3 : 08.03.19 - klo:14.17 »
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...
Ubuntu 18.04 LTS, Gnome Flashback Metacity, Xeon E3-1245 V2, 8 GB

kamara

  • Käyttäjä
  • Viestejä: 2094
    • Profiili
Vs: Gnomen muistinkäyttö
« Vastaus #4 : 08.03.19 - klo:14.32 »
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.

nm

  • Käyttäjä
  • Viestejä: 12964
    • Profiili
Vs: Gnomen muistinkäyttö
« Vastaus #5 : 08.03.19 - klo:15.33 »
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.

jarmala

  • Käyttäjä
  • Viestejä: 386
    • Profiili
Vs: Gnomen muistinkäyttö
« Vastaus #6 : 08.03.19 - klo:15.38 »
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.
Ubuntu 18.04 LTS, Gnome Flashback Metacity, Xeon E3-1245 V2, 8 GB

nm

  • Käyttäjä
  • Viestejä: 12964
    • Profiili
Vs: Gnomen muistinkäyttö
« Vastaus #7 : 08.03.19 - klo:15.57 »
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.

jarmala

  • Käyttäjä
  • Viestejä: 386
    • Profiili
Vs: Gnomen muistinkäyttö
« Vastaus #8 : 10.03.19 - klo:04.14 »
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:

Koodia: [Valitse]
#! /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?

Ubuntu 18.04 LTS, Gnome Flashback Metacity, Xeon E3-1245 V2, 8 GB

jarmala

  • Käyttäjä
  • Viestejä: 386
    • Profiili
Vs: Gnomen muistinkäyttö
« Vastaus #9 : 10.03.19 - klo:09.14 »
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...
Ubuntu 18.04 LTS, Gnome Flashback Metacity, Xeon E3-1245 V2, 8 GB

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 10729
    • Profiili
    • Tomin kotisivut
Vs: Gnomen muistinkäyttö
« Vastaus #10 : 10.03.19 - klo:10.17 »
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.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

jarmala

  • Käyttäjä
  • Viestejä: 386
    • Profiili
Vs: Gnomen muistinkäyttö
« Vastaus #11 : 11.03.19 - klo:19.26 »
1. Miten top komennetaan komentoriviltä esittämään muistimäärät megatavuina?

Vastaan itselleni:

Koodia: [Valitse]
#! /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...
« Viimeksi muokattu: 11.03.19 - klo:19.30 kirjoittanut jarmala »
Ubuntu 18.04 LTS, Gnome Flashback Metacity, Xeon E3-1245 V2, 8 GB

juhisi

  • Käyttäjä
  • Viestejä: 196
    • Profiili

nm

  • Käyttäjä
  • Viestejä: 12964
    • Profiili
Vs: Gnomen muistinkäyttö
« Vastaus #13 : 13.03.19 - klo:15.30 »
1. Miten top komennetaan komentoriviltä esittämään muistimäärät megatavuina?

Vastaan itselleni:

Koodia: [Valitse]
#! /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ä:

Koodia: [Valitse]
#!/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}'

kuutio

  • Käyttäjä
  • Viestejä: 98
    • Profiili
Vs: Gnomen muistinkäyttö
« Vastaus #14 : 13.03.19 - klo:17.07 »
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.