Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: mrl586 - 30.01.12 - klo:09.42
-
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?
-
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?
-
Tässä df -h komennon tuloste kovalevyn käytöstä:
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
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
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
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
-
Tulin tuon kysymyksen vuoksi uteliaaksi muistin käytöstä tässä vanhasa koneessani mitä päivittäin käytän ja vilkaisin:
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.
-
Mulla Ubuntu Natty Narwhal (11.04) syö muistia vain reilut kolmesataa megaa näin muutaman tunnin käytön jälkeen.
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
-
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.
-
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
-
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):
sudo sysctl vm.swappiness=10
Nykyisen arvon näkee komennolla:
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:
gksudo gedit /etc/sysctl.conf
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 (https://help.ubuntu.com/community/SwapFaq#What_is_swappiness_and_how_do_I_change_it.3F)
-
Kyllä tuo swappinessin säätö on neuvottu suomenkielisissäkin ohjeissa
http://wiki.ubuntu-fi.org/Ubuntun_tuunaus (http://wiki.ubuntu-fi.org/Ubuntun_tuunaus)
Samoin cache-pressure on neuvottu siellä, jolla voi säätää puskurointiherkkyyttä.
T:jallu59
-
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:
$ free -m
total used free shared buffers cached
Mem: 16042 15349 692 0 239 8409
-/+ buffers/cache: 6701 9341
Swap: 22242 2482 19759
-
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:
sudo swapoff -a
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.
-
... snipattu
Yleensä ottaen, se muisti mikä on käytettevissä on +++
Se että sitä riittää cacheenkin on toki hienoa.
-
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.