Portál AbcLinuxu, 6. května 2025 14:00
Možná, že některé procesy na zabití nereagují úplně korektně a jádro pak tu paměť stále drží a pro mě je nedostupná...Mohlo by být v případě, že ty procesy mají nějakou POSIX sdílenou paměť nebo něco takového. Nebo máte free, které vám neukazuje diskové cache, takže těch 22MB, co vám teče, je tam. (A nemusíte to řešit, protože jádro tu paměť uvolní, když bude potřeba.) Kdyžtak můžete kouknout do
/proc/meminfo
, tam je to rozebráno dost detailně. (A snad bylo i na tomhle prastarém kernelu.)
Mem: 36864K used, 4960K free, 0K shrd, 2608K buff, 8624K cachedKdyž vše zabiju (a echo 3 > /proc/sys/vm/drop_caches), tak se dostávám někam na 32 MB, tedy volného relativně dost. Ale třeba flash firmware mi schrastne na ram. Tam jde o to, že ho musím nejprve stáhnout do ramfs (/tmp, nějakých 7-8MB). Pak se nahrává do shared mem. a pak se flashuje do paměti. Teď mě napadá, že by možná stačilo po nahrání do shmem v tom flash démonu ho z toho ramfs tmp smáznout, takto to asi zabírá 2x. Kernel mi pak začne zabíjet hlava nehlava, co mu přijde po ruku. Orientačně to vypadá takto: https://pastebin.com/mLSz4Ymx (ale tady jsem ještě neměl zabití všeho, tak je tam toho víc). Nicméně vypadá to stejně. Když zabiju vše, co můžu...
# for pid in $(ps | grep -Ev 'fwd|watchdog' | awk '{if(NR>1) print $1}'); do kill -9 $pid; done / # pstree -+= 00001 root init |--- 05026 root fwd |--- 05039 root watchdog 1000 \-+= 05082 root -/bin/sh \--= 05083 root pstree echo 3 > /proc/sys/vm/drop_caches
Mem: 23664K used, 18160K free, 0K shrd, 208K buff, 1872K cachedTak se mi občas flash zdaří, někdy ne. Nějaká úmrtnost stále je a padá to právě na paměť.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.