ra-v
(ra-v)
3 Sierpień 2011 20:28
#1
Mam 4GB RAM, czyli 4096MB jak dobrze policzyć. Na grafikę przydzielam 128MB, czyli zostaje 3968MB.
Teraz podaję wynik poleceń.
xxx@linux-70u8:~> cat /proc/meminfo
MemTotal: 3926576 kB
xxx@linux-70u8:~> free -k
total used free shared buffers cached
Mem: 3926576 2527596 1398980 0 63612 1660024
3926576 KB = 3834 MB, czyli znika ok 120MB. Jeśli dam 256MB na grafikę to znika ok 140MB. Gdzie tu jest problem?
Wiadomo że przy tej ilości ram zanik ok 2-3% to nic wielkiego, ale jednak coś mi tu się nie kalkuluje.
roobal
(roobal)
3 Sierpień 2011 23:13
#2
Pamiętaj, że 4GB to co najwyżej chwyt marketingowy, musiałbyś mieć 4GiB.
Pozdrawiam!
ra-v
(ra-v)
4 Sierpień 2011 04:41
#3
Tzn? Włożę 2 GB i jest ok. Przy 2x2 jest takie coś.
roobal
(roobal)
4 Sierpień 2011 22:37
#4
Ja przy 2GB mam 2050860kB (wg free), czyli tak naprawdę 1,95GB. Jeśli masz tak samo, to masz prawdopodobnie nie 4GB, a około 3,90GB, odejmując te 128MB, to by było około 3,75GB (3834/1024 = ~3,75).
3834 + 128 = 3962
3962 * 1024 = 4057088kB (w ten sposób masz marketingowe 4GB).
Pozdrawiam!
4lpha
(4lpha)
5 Sierpień 2011 08:33
#5
Eh, masz lepiej ode mnie. Powinienem mieć 4GB, a mam 3,85GB.
Triniti888
(Pawel Pieczyrak)
5 Sierpień 2011 09:18
#6
Ja też tak mam. Na windows 7 wykrywa mi elegancko pełne 4 GB a na Xubuntu tyle co tobie. Nie wiem od czego to zależy.
kazuldur
(Kacper B Zuk)
5 Sierpień 2011 15:37
#7
Chodzi o to, że free podaje Ci to w KiB, czyli *1024, a producenci dysków, pamięci etc. stosują GB, czyli *1000.
4GB * 1000 * 1000 / 1024 / 1024 = 3.81 GiB.
Nic nie znika, tylko w innej jednostce jest podawane.
ra-v
(ra-v)
5 Sierpień 2011 22:13
#8
Kurczak, a może w nowych jądrach jest PAE włączone? Tylko jak to sprawdzić?
OgiX
(OgiX)
5 Sierpień 2011 22:25
#9
Free nie uwzględnia m.in. pamięci zajętej przez jądro.
Jeżeli chcesz sprawdzić ile pamięci rozpoznaje Linux i ile jest zarezerwowane (tj. poza zasięgiem dla free i innych programów) wykonaj polecenie:
dmesg | grep Memory
Powinieneś otrzymać coś w rodzaju:
[0.000000] Memory: 2047476k/2096960k available (3081k kernel code, 452k absent, 49032k reserved, 1890k data, 592k init)
ra-v
(ra-v)
6 Sierpień 2011 10:26
#10
xxx@linux-70u8:~> dmesg | grep Memory
[0.000000] Memory: 3847932k/5242880k available (5300k kernel code, 1180484k absent, 214464k reserved, 6126k data, 936k init)
[6.000082] EDAC amd64: This node reports that Memory ECC is currently disabled, set F3x44[22] (0000:00:18.3).
OgiX
(OgiX)
6 Sierpień 2011 10:53
#11
5300k kernel code
214464k reserved
6126k data
936k init
=226826k (~221,5 MiB)
… i już wiadomo gdzie znikło;)
Odnośnie “1180484k absent”, bo pewnie to cię zaciekawi - przytoczę cytat z link :
"absent memory reflects the memory addressing space lost due to memory
holes in the memory map. Typically holes are left for PCI space, IO, etc…
Every vendor model system is different, and every system will have a different
value reported for the absent memory."
PS
W trakcie uruchamiania systemu część z tej zarezerwowanej puli jest zwalniana, by zobaczyć ile:
dmesg | grep freed
W trakcie ładowania dodatkowych modułów itp. ta wartość może się jeszcze trochę zmieniać i nie ma większych powodów do obaw.
kijek
(kijek)
6 Sierpień 2011 19:00
#12
To dziwne. U mnie na Ubuntu 11.04 64 bit po wywołaniu polecenia free -k wygląda to następująco:
total used free shared buffers cached
Mem: 4056904 1725372 2331532 0 62508 706376
ra-v
(ra-v)
7 Sierpień 2011 00:57
#13
A jest dostępne 3926576kB (~3834 MB) odliczajac 128MB wraz z odliczeniem na kartę grafiki. Więc nie wiadomo co to policzyło:)
xxx@linux-70u8:~> dmesg | grep freed
[0.485376] Freeing initrd memory: 10600k freed
[1.691643] Freeing unused kernel memory: 936k freed
[1.692171] Freeing unused kernel memory: 824k freed
[1.692492] Freeing unused kernel memory: 332k freed
[3.099101] PM: Basic memory bitmaps freed
Jakieś groszowe sprawy. kijek ,
4056904 KB - 131072 KB na grafikę = 3925832 KB
czyli praktycznie tyle co u mnie.
Jednak śmierdzi mi tu PAE albo czymś, bo widzę że nie tylko ja mam takie coś.
OgiX
(OgiX)
7 Sierpień 2011 07:25
#14
Jak koniecznie chcesz zobaczyć precyzyjne statystyki pamięci - “/proc/meminfo” podejrzyj ten plik. Ale ze znaczeniem wpisów musisz już sobie sam poradzić
Edit:
link - częściowo wytłumaczone znaczenie wpisów w meminfo [eng]
Do tego mogę dorzucić polecenie “vmstat” z przełącznikami “-s” lub “-m” wyświetlającymi statystyki odpowiednio pamięci systemu i slab (cache jądra).
ra-v
(ra-v)
7 Sierpień 2011 12:27
#15
vmstat i meminfo dają takie same informacje jak w poleceniu free.
OgiX
(OgiX)
7 Sierpień 2011 17:23
#16
Poddaję się
Co do PAE -> raczej śmierdzi mi tu MTRR/PAT (może zerknij do “/var/log/mtrr” czy coś tam jest ciekawego?) lub może coś związane z odpowiednikiem “agp aperture” dla karty graficznej PCI-E? Nie wiem w końcu jak rozwiązali ten problem, a nie mam siły do przeglądania takiej ilości manuali…