Linux - Ilość RAM raportowana przez DMESG

7 views
Skip to first unread message

Stanisław Wawszczak

unread,
Dec 11, 2019, 4:59:32 PM12/11/19
to hackers...@googlegroups.com
Witajcie,

Dzisiaj piszę z prośbą o pomoc Dobrej Linuxowej Duszy.
Mam mały problem z doliczeniem się ilości RAM w maszynie wirtualnej pewnego dostawcy Clouda.
Mianowicie free -k podaje warość 1925016KiB. Maszyna wg. specyfikacji powinna mieć 2048MiB.
Zaś polecenie dmesg | grep "Memory" jako jedyne pokazuje tylko w jednym polu 2096696K.
image.png

zauważyłem że wartość 1925016 + 171680 = 2096696.

Czy ktoś jest w stanie mi wyjaśnić co oznaczają poszczególne wartości podawane przez DMESG na wczesnym etapie bootowania systemu i podać jakieś źródło do tego???

Z góry dzięki!!!

Staszek

Serge Bazanski

unread,
Dec 11, 2019, 5:20:11 PM12/11/19
to hackers...@googlegroups.com
Wklej cały dmesg.

Ale generalnie o takie grosze zazwyczaj ciężko się kłócić. Może to być
wszystko od RAMu użytego przez initrd/initramfs, bufory sprzętowe,
struktury danych SLABa albo sprzętowe, aż po kawałki RAMu oznaczone jako
niedostępne przez BIOS/UEFI. Bez pełnego dmesga jest mi ciężko stwierdzić.

Masz też załadowany ballooning, czyli dynamiczne oddawanie pamięci przez
wirtualkę na żądanie hostowi (co pozwala na overprovisioning RAMu po
stronie provider) - niewykluczone że to może też się objawiać jako
'reserved' albo jakikolwiek inny 'stracony' RAM - nie pamiętam jak to
obecnie działa w Linuxie, a dokładniej to jak to konkretnie działa z
hv_balloon.

q3k

Stanisław Wawszczak

unread,
Dec 16, 2019, 4:51:20 AM12/16/19
to hackers...@googlegroups.com
CZeść!

Dzięki za odpowiedź!
Miałem dość trudny wyjazdowy tydzień, przepraszam za opóźnienie mojej reakcji.
dmesg w załączeniu.
Chodzi o drobiazgi, bo ten sam provider dostarcza oprogramowanie które ma działać na 2000MiB I na mojej wirtualce to nie startuje, bo ma wewnętrzny check ile jest ramu w OS.
No I mam zonk...
Jeśli to jest problem obrazu, to być może jestem w stanie odchudzić initrd albo coś takiego?

Staszek

--
Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie „Hackerspace KRK”.

Aby anulować subskrypcję tej grupy i przestać otrzymywać od niej wiadomości, wyślij e-maila na hackerspace-k...@googlegroups.com.
Aby wyświetlić tę dyskusję w internecie, odwiedź stronę https://groups.google.com/d/msgid/hackerspace-krk/50c8d7c3-2ccb-c3b9-0089-7fb489215532%40q3k.org.
dmesg.txt

Serge Bazanski

unread,
Dec 16, 2019, 6:45:54 AM12/16/19
to hackers...@googlegroups.com
Jak to jest na azure to myślę, że niewiele sam wykombinujesz.

Usuń check z softu, podbij do większego typu wirtualki albo napisz do
supportu MSFT.

q3k

Jakub Kramarz

unread,
Dec 16, 2019, 6:53:24 AM12/16/19
to Hackerspace group
Prędzej utniesz ten check ;-)

--
Otrzymujesz tę wiadomość, bo subskrybujesz grupę „Hackerspace KRK” w Grupach dyskusyjnych Google.

Aby anulować subskrypcję tej grupy i przestać otrzymywać od niej wiadomości, wyślij e-maila na hackerspace-k...@googlegroups.com.

Stanisław Wawszczak

unread,
Dec 16, 2019, 7:15:47 AM12/16/19
to hackers...@googlegroups.com
Dzięki chłopaki :)

Ale support Microsoft mi napisał że to Linux zżera RAM I mogę sobie poprawić obraz albo przejść na większą (czytaj droższą) wirtualkę...

No więc próbuję tego pierwszego sposobu...

Any Thoughts? SW

Jakub Kramarz

unread,
Dec 16, 2019, 8:06:48 AM12/16/19
to Hackerspace group
Czyli potrzebujesz zejść z jądrem i jego przyczłapami i initrd z prawie 200 na poniżej 50 megabajtów, tak?

Może jednak jakiś przyjazny LD_PRELOAD na tej aplikacji?

Stanisław Wawszczak

unread,
Dec 17, 2019, 4:57:18 AM12/17/19
to hackers...@googlegroups.com
Panowie,

Gdyby to było takie proste, to bym to sam wykminił :)
Sprawa jest taka, że mam kontener dockera z appką, która sprawdza ile ramu raportuje polecenie free w pierwszej kolumnie:
image.png
Ta sama wartość pojawia się w cat /proc/meminfo
image.png
Dla mnie to jest wystarczający powód, żeby twierdzić że Vendor zaniża ilość ramu dostępną dla wirtualki. Ale Vendor twierdzi inaczej, bo dmesg jako drugą wartość podaje 2096696K, co jest równe 2047MiB
image.png

Dlatego najważniejsze dla mnie pytanie jest takie, co to jest ta wartość 171680K. To jest dokładnie wartość różnicy 2096696K - 1925016K = 171680K.

Jeśli jest to wartość pochodząca od Linuxa jako takiego, to pytanie jest jako to zmniejszyć.
A jeśli jest to wartość pochodząca od BIOSU/UEFI, to pytanie jak to udowodnić.

Macie jakieś pomysły/sugestie?

SW


Szymon Reiter

unread,
Dec 17, 2019, 5:22:16 AM12/17/19
to hackers...@googlegroups.com

z tego co pamietam, to reserved memory jest alokowane przez kernel zaraz na początku. A więc odpowiadając na Twoje pytanie - tak jest to wartośc pochodząca z linuksa jako takiego. Jak ją zmniejszyć?  Ludzie w Internetach piszą, ze to jest alokowane przez /usr/src/linux/mm/bootmem.c - może modyfikacja?

Nie wiem co chcesz finalnie osiągnąć, żeby apka się odpaliła? Czy rzeczywiście potrzebujesz równo te 2GB wolnego. Jesli chcesz odpalic apke to albo zmodyfikuj czeka w apce albo podmień free. Jesli potrzebujesz 2GB dla samej aplikacji to Ci sie raczej nie uda na maszynie z 2GB ramu, bo kernel i reszta systemu też ram jedzą.

W dniu 17.12.2019 o 10:57, Stanisław Wawszczak pisze:
Aby wyświetlić tę dyskusję w internecie, otwórz https://groups.google.com/d/msgid/hackerspace-krk/CAN4Wq1KEZc3vGrW4_hGRQfcYnA03UFj0GVgM5tLwD-VakEx_Bw%40mail.gmail.com.
-- 
Pozdrawiam,
Szymon Reiter

Stanisław Wawszczak

unread,
Dec 17, 2019, 5:47:12 AM12/17/19
to hackers...@googlegroups.com
Chciałbym osiągnąć to, żeby Appka się odpaliła.
Przy czym nie wiem do końca jak ona to sprawdza - nie mam źródeł.
Więc mój pomysł na to jest zmniejszyć tę wielkość 171680K o połowę - to (jak podejrzewam) da mi wystraczająco dużo zaraportowanego RAM przez 'free'.
W internetach piszą że to jest faktycznie alokowane przez bootmem.c, ale powodów podają różnych i sprzecznych bez liku… Jeśli to jest jakiś obszar ram zajęty przez wirtualkę jako taką (np. bufory DMA albo coś…) to jest to temat do supportu...

Stanisław Wawszczak

unread,
Dec 17, 2019, 5:54:10 AM12/17/19
to hackers...@googlegroups.com
BTW - w nowożytnych kernelach nie ma bootmem.c :)

Stanisław Wawszczak

unread,
Dec 17, 2019, 8:55:24 AM12/17/19
to hackers...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages