hirtelen 30mb allocacio 2 nap utan

 ( pka | 2013. december 15., vasárnap - 17:38 )

Van egy embedded linux app ami sokat allocal memoriat meg felszabadit es ket napos futas utan hirtelen egy 30mb alloc tortenik es nem tudjuk, hogy honnan, mert utana a OOM killer leallitja, mivel rendszeren nem sok szabad memoria van.
Hasonlo mint itt: http://stackoverflow.com/questions/17874252/linux-process-shows-sudden-memory-jump
Van valakinek hasonlo tapasztalata, otlete?

Ami erdekelne, hogy, ha ez igaz:
"It might be that malloc() creates a new heap for "small" allocations. Depending on the malloc implementation you might get different heaps for different allocation sizes (eg. one for malloc() calls between 4096 and 8092 bytes, another one for allocations between 10 and 20MB...)"
Default mallocot hasznal, nincs sajat implementacioja. Lehet-e valahogy ezt konfiguralni?

Vagy lehet-e ez?
"if you do lots of small allocations, maybe your heap is getting fragmented."
Ezt el lehet-e kerulni?

Ra lehet-e birni valahogy a kernelt, hogy visszavegye a "dirty pages"-t?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Hirtelen majdnem linkeltem egy hogyan kérdezzünk-et, de látom már te is több, mint 10 éve nyomod. Úgyhogy akkor csak egy olvasói kérdést eresztek meg: milyen programnyelven íródott az applikáció?
C? C++? Netán jó kis Java?
Hanyas kernel, milyen disztribúció?

Ritkán bújik ki belőlem, de most:
Nyelvtan nátszi on
Ha latinosan akarjuk írni, akkor allocatio. Ha magyarosan, akkor allokáció.
Nyelvtan nátszi off

Üdv:
Dw.

"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."

Az app C-t es C++-t es Qt-t hasznal.
TI sitara boardhoz adott linux disztro.
Az allokaciorol meg igazad van.

Én olyan helyen láttam hasonlót, ahol saját new és delete operátorokat írtak a srácok. Ott volt módi az, hogy előre allokáltak nagyobb memória darabokat, amiket később a saját new és delete használt. Amikor szükség volt több helyre, újra egy nagyobb darab lett allokálva: akár 30MB néhány nap elteltével...
--
http://naszta.hu

Otlet: `mtrace`. Hasznaltam ma'r ilyesmire ;) Jo lehet me'g a valgrind is, de ha ~30m a memoria karakterisztikus me'rete, akkor lehet hogy az annak me'g kicsi.

Mezei deszktopon nem tudod leko"vetni, emulalni, szimulalni, barmi? Az is segithet.

Valgrind sajnos nem fer ra a boardra. Desktopon meg egyenlore nem megy, de dolgoznak rajta, hogy menjen.

Lehet, hogy ez a gond ami a cikkben le van irva: http://elinux.org/images/b/b9/Elc2013-embedded-memory-management.pdf
Minden esetre erdekes.

"Default mallocot hasznal, nincs sajat implementacioja. Lehet-e valahogy ezt konfiguralni?"

man mallopt. Sose használtam, de hátha.

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o