Kirjoittaja Aihe: Kernelien 3.1 ja 3.2 erot muistinkulutuksen ja kiintolevyn käytön osalta  (Luettu 3674 kertaa)

mrl586

  • Käyttäjä
  • Viestejä: 4638
    • Profiili
Ovatko muut havainneet, että kernelillä 3.1 kovalevy näyttää paljon tyhjemmältä kuin kernelillä 3.2? Keskusmuistiakin vanhemmalla kernelillä käytettävissä paljon enemmän kuin uudemmalla kernelillä. Mistä tämä johtuu? Onko kyseessä bugi?

_Pete_

  • Käyttäjä
  • Viestejä: 1836
  • Fufufuuffuuu
    • Profiili
Ovatko muut havainneet, että kernelillä 3.1 kovalevy näyttää paljon tyhjemmältä kuin kernelillä 3.2? Keskusmuistiakin vanhemmalla kernelillä käytettävissä paljon enemmän kuin uudemmalla kernelillä. Mistä tämä johtuu? Onko kyseessä bugi?

Miten nämä erot on mitattu? Saisiko lukemat esiin?


mrl586

  • Käyttäjä
  • Viestejä: 4638
    • Profiili
Tässä df -h komennon tuloste kovalevyn käytöstä:
Koodia: [Valitse]
Linux debian 3.1.0-0.bpo.1-amd64 #1 SMP Mon Jan 23 08:42:50 UTC 2012 x86_64
root@debian:~# df -h
Tiedostojärjestelmä    Size  Used Avail Use% Liitospiste
rootfs                146G  1,1G  138G   1% /
udev                  496M  116K  496M   1% /dev
tmpfs                 101M   52K  101M   1% /run
/dev/mapper/debian-root
                      146G  1,1G  138G   1% /
tmpfs                 201M     0  201M   0% /run/shm
/dev/sda1             228M   17M  199M   8% /boot
Koodia: [Valitse]
Linux debian 3.2.0-0.bpo.1-amd64 #1 SMP Wed Jan 25 00:15:47 UTC 2012 x86_64
root@debian:~# df -h
Tiedostojärjestelmä    Size  Used Avail Use% Liitospiste
rootfs                148G  3,4G  137G   3% /
udev                  496M  116K  496M   1% /dev
tmpfs                 101M   52K  101M   1% /run
/dev/mapper/debian-root
                      148G  3,4G  137G   3% /
tmpfs                 201M     0  201M   0% /run/shm
/dev/sda1             228M   32M  184M  15% /boot
Ja tässä free -m -komennon tuloste
Koodia: [Valitse]
root@debian:~# uname -a
Linux debian 3.1.0-0.bpo.1-amd64 #1 SMP Mon Jan 23 08:42:50 UTC 2012 x86_64 GNU/Linux
root@debian:~# free -m
             total       used       free     shared    buffers     cached
Mem:          1002        245        756          0         20        127
-/+ buffers/cache:         98        904
Swap:         1959          0       1959
Koodia: [Valitse]
root@debian:~# uname -a
Linux debian 3.2.0-12-generic #20-Ubuntu SMP Fri Jan 27 23:13:36 UTC 2012 x86_64 GNU/Linux
root@debian:~# free -m
             total       used       free     shared    buffers     cached
Mem:           995        171        823          0         17         59
-/+ buffers/cache:         94        900
Swap:         1959          0       1959
« Viimeksi muokattu: 30.01.12 - klo:10.16 kirjoittanut mrl586 »

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Tulin tuon kysymyksen vuoksi uteliaaksi muistin käytöstä tässä vanhasa koneessani mitä päivittäin käytän ja vilkaisin:

Koodia: [Valitse]
free -mo
              total       used       free        shared    buffers  cached
Mem:          1001        939         61          0         22        415
Swap:         2355          0       2355

Muistimäärien yksikkö M (mega) yllä.

Natty heti käynnistyksen jälkeen, 1 G muistia, vapaana siitä vain 61 M ja ei mitään ohjelmia käynnissä.
Todella niukasti vapaata muistia kun Firefox yleensä haukkaa yli 100 M heti kättelyssä.  Minkähän takia tuo "cached" -osasto on noin suuri ?

Kernel on tässä 2.6.38-13-generic eli ei aivan uusimpia.
« Viimeksi muokattu: 31.01.12 - klo:13.48 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

Jallu59

  • Käyttäjä
  • Viestejä: 3430
    • Profiili
Mulla Ubuntu Natty Narwhal (11.04) syö muistia vain reilut kolmesataa megaa näin muutaman tunnin käytön jälkeen.

Koodia: [Valitse]
jallu@Armas:~$ uname -a
Linux Armas 2.6.38-13-generic #55-Ubuntu SMP Tue Jan 24 14:27:59 UTC 2012 i686 i686 i386 GNU/Linux
jallu@Armas:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          2012        821       1190          0        100        393
-/+ buffers/cache:        328       1683
Swap:        10244          0      10244

>ajaskel: Oikeamman tiedon muistinkutuksesta antaa tuo free pelkällä -m parametrilla keskimmäisellä rivillä. Muu kulutus on puskureita ja levy-cachea, jota käytetään vain silloin jos joutilasta muistia on tarjolla. eli sinulla ei luultavasti ole muistista pulaa.

EDIT: Nuo kernelien pienet muistinkulutuksen erothan johtuvat noiden puskurien eroista, mikä saattaa vaihdella satunnaisesti.

T:Jallu59
« Viimeksi muokattu: 31.01.12 - klo:14.03 kirjoittanut Jallu59 »
Jari J. Lehtinen, Wanhempi (iki?)tietoteekkari & tietotekniikkakonsultti Turust, P4-HT / 3,0 GHz, Intel945 IGP 226MB & 4GBram & UbuntuStudio 14.04. Toshiba Satellie 50-C, i5 dual-core 2,3GHz, ubuntu-mate 16.04 LTS

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Lainaus
Muu kulutus on puskureita ja levy-cachea, jota käytetään vain silloin jos joutilasta muistia on tarjolla....

Joo, noin se näyttää toimivan.  Kun latasin Firefoxin niin vapaana näkyvä muisti kasvoi eli sitä otettiin puskureilta pois dynaamisesti.

free -m
             total       used       free     shared    buffers     cached
Mem:          1001        913         88          0         26        381
-/+ buffers/cache:        504        496
Swap:         2355          0       2355

Tuo "-m" ja -mo" näyttävät tasan samoja lukuja, ainut ero on että tuo lisänä oleva "o" ohittaa puskureiden näytön eli tuota yhtä riviä ei tule.
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

Jallu59

  • Käyttäjä
  • Viestejä: 3430
    • Profiili
Lainaus
Muu kulutus on puskureita ja levy-cachea, jota käytetään vain silloin jos joutilasta muistia on tarjolla....

Joo, noin se näyttää toimivan.  Kun latasin Firefoxin niin vapaana näkyvä muisti kasvoi eli sitä otettiin puskureilta pois dynaamisesti.

free -m
             total       used       free     shared    buffers     cached
Mem:          1001        913         88          0         26        381
-/+ buffers/cache:        504        496
Swap:         2355          0       2355

Tuo "-m" ja -mo" näyttävät tasan samoja lukuja, ainut ero on että tuo lisänä oleva "o" ohittaa puskureiden näytön eli tuota yhtä riviä ei tule.
Juu, ja se keskimmäinen rivi on juuri se relevantein eli sulla on tuossa yllä ohjelmien käytössä 504MB ja vapaana 496MB, josta toiminnan nopeuttamiseksi puskureina käytetään 26MB ja levycachena 381MB. Nämä viimeksimainitut toimivat dynaamisesti väistyen tieltä, jos ohjelmat tarvitsevat lisää muistia.

Ystävällisin terveisin

Jallu59
Jari J. Lehtinen, Wanhempi (iki?)tietoteekkari & tietotekniikkakonsultti Turust, P4-HT / 3,0 GHz, Intel945 IGP 226MB & 4GBram & UbuntuStudio 14.04. Toshiba Satellie 50-C, i5 dual-core 2,3GHz, ubuntu-mate 16.04 LTS

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Seurailin hieman swapin toimintaa ja alkoi tuntua että se on liian herkällä. Muistista ei ollut vielä pulaa mutta swappitilaa alettiin kiintolevyltä jo käyttää.  Etsin hieman millä tuota voisi säätää ja tämän pitäisi tehdä asia lennossa (mutta ei pysyvästi):

Koodia: [Valitse]
sudo sysctl vm.swappiness=10
Nykyisen arvon näkee komennolla:
Koodia: [Valitse]
sysctl vm.swappiness
Alkuperäinen arvo tuolla on 60.  Mitä pienempi arvo, sitä tiukemmin pyritään pysymään RAM: ssa ilman että otetaan (hidasta) levyä sen jatkoksi. Sallitut arvot välillä 0...100.

Pysyväksi (= säilyy vielä koneen uudelleen käynnistyksen jälkeenkin) sen saa kun lisää editorilla rivin tuonne --> /etc/sysctl.conf -tiedoston loppuun:

Koodia: [Valitse]
gksudo gedit /etc/sysctl.conf
Koodia: [Valitse]
vm.swappiness=10  

Tuo on englanniksi kerrottu täällä:

https://help.ubuntu.com/community/SwapFaq#What_is_swappiness_and_how_do_I_change_it.3F
« Viimeksi muokattu: 01.02.12 - klo:15.40 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

Jallu59

  • Käyttäjä
  • Viestejä: 3430
    • Profiili
Kyllä tuo swappinessin säätö on neuvottu suomenkielisissäkin ohjeissa
http://wiki.ubuntu-fi.org/Ubuntun_tuunaus
Samoin cache-pressure on neuvottu siellä, jolla voi säätää puskurointiherkkyyttä.

T:jallu59
Jari J. Lehtinen, Wanhempi (iki?)tietoteekkari & tietotekniikkakonsultti Turust, P4-HT / 3,0 GHz, Intel945 IGP 226MB & 4GBram & UbuntuStudio 14.04. Toshiba Satellie 50-C, i5 dual-core 2,3GHz, ubuntu-mate 16.04 LTS

_Pete_

  • Käyttäjä
  • Viestejä: 1836
  • Fufufuuffuuu
    • Profiili
Seurailin hieman swapin toimintaa ja alkoi tuntua että se on liian herkällä. Muistista ei ollut vielä pulaa mutta swappitilaa alettiin kiintolevyltä jo käyttää.  Etsin hieman millä tuota voisi säätää ja tämän pitäisi tehdä asia lennossa (mutta ei pysyvästi):

Miten olet päätynyt tulokseen että kernelin algoritmit, jotka päättävät siitä käytetäänkö swappia vai ei on huonompi kuin oma versiosi?

Lisätään vielä irrelevant muistitieto:
Koodia: [Valitse]
$ free -m
             total       used       free     shared    buffers     cached
Mem:         16042      15349        692          0        239       8409
-/+ buffers/cache:       6701       9341
Swap:        22242       2482      19759

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Lainaus
Miten olet päätynyt tulokseen että kernelin algoritmit, jotka päättävät siitä käytetäänkö swappia vai ei on huonompi kuin oma versiosi?
Se perustui hätäiseen olettamukseen että tuo mainitsemani dokumentti pitää paikkansa, en ole asiaa mitenkään mitannut. Varsinaisesti tuo ei muuta algoritmia (?) vaan säätää jotain sen parametria. Kerrothan tarkemmin havaintosi jos näyttää että tuo on pielessä ?

Kokeilin hieman, laitoin arvoksi vm.swappiness=0 ja auoin ohjelmia nähdäkseni mitä tapahtuu:

free -m
             total       used       free     shared    buffers     cached
Mem:          1001        982         18          0          0         67
-/+ buffers/cache:        913         87
Swap:         2355          1       2354

Tuossa on tilanne missä swappi aktivoitui --- vaikka swappiness-arvoksi oli laitettu pyöreä nolla. Dokumenttien väite "swappia ei käytetä kun tuo on nolla" ei pidä paikkansa.  Agressiivisuuteen se näytti vaikuttavan niin että kun arvo oli 100 alkoi swapin käyttö jo ensimmäisen ohjelman avauksesta ja arvon ollessa nolla sai latailla jo liki kaikki Officen ohjelmat ennen kuin swap heräsi. Tyhjäsin swapin kokeiden välillä antamalla:

Koodia: [Valitse]
sudo swapoff -a
Koodia: [Valitse]
sudo swapon -a

Kone vastaa vielä hyvin. Lisää ohjelmia käyntiin kunnes tämä tilanne:

 free -m
             total       used       free     shared    buffers     cached
Mem:          1001        988         13          0          0         50
-/+ buffers/cache:        936         64
Swap:         2355         15       2340

ja kone on aivan tukossa.   Sammutan parit ohjelmat ja taas kaikki ok.


PS. Näyttää että tuo swapin kohdalla näkyvä "used" ei ole mikään nykyinen tilanne vaan korkein arvo mitä on tapahtunut.  Tekemällä swapoff/swapon sen laskurin saa nollattua.
« Viimeksi muokattu: 02.02.12 - klo:09.27 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

_Pete_

  • Käyttäjä
  • Viestejä: 1836
  • Fufufuuffuuu
    • Profiili
... snipattu

Yleensä ottaen, se muisti mikä on käytettevissä on +++
Se että sitä riittää cacheenkin on toki hienoa.


mrl586

  • Käyttäjä
  • Viestejä: 4638
    • Profiili
Ovatko muut havainneet, että kernelillä 3.1 kovalevy näyttää paljon tyhjemmältä kuin kernelillä 3.2?
Onnistuin toistamaan tämän myös toisella koneella. Heti asennuksen jälkeen kovalevyn /home-osiosta on käytössä 200 megaa kernelillä 3.1, mutta kerneli 3.2 väittää, että tuolla osiolla olisi täytettä jopa 7 gigatavun edestä. Testasin myös kerneliä 3.3 ja se käyttäytyy samalla tavalla väärin kuin 3.2.