記憶體碎片問題分析

2021-10-08 10:11:02 字數 1277 閱讀 5505

裝置啟動後不一會就自動重啟,操作裝置進行錄影的話重啟更快。

cpu占用快速飆公升,飆公升程序是系統程序 kworker。

重啟原因是核心提示oom,應用程式被kill掉後,看門狗重啟的裝置,崩潰時free看起來還有4~5m記憶體,足夠記憶體分配(裝置上申請記憶體較小),核心列印資訊類似如下,只是資料不同。

sysrq : show memory

mem-info:

normal per-cpu:

cpu 0: hi: 18, btch: 3 usd: 3

active_anon:782 inactive_anon:503 isolated_anon:0

active_file:307 inactive_file:705 isolated_file:0

unevictable:0 dirty:0 writeback:0 unstable:0

free:5480 slab_reclaimable:170 slab_unreclaimable:1367

lowmem_reserve: 0 0

normal: 104*4kb 70*8kb 55*16kb 25*32kb 27*64kb 25*128kb 34*256kb 9*512kb 1*1024kb 0*2048kb 0*4096kb 0*8192kb = 21920kb

1546 total pagecache pages

16384 pages of ram

5654 free pages

5002 reserved pages

1537 slab pages

2063 pages shared

0 pages swap cached

normal: 104*4kb 70*8kb 0*16kb 0*32kb 0*64kb 0*128kb 0*256kb 0*512kb 0*1024kb 0*2048kb 0*4096kb 0*8192kb = ***kb
通過sysrq-trigger介面

echo "m" > /proc/sysrq-trigger

dmesg

通過buddyinfo介面

cat /proc/buddyinfo 

node 0, zone normal 92 66 54 25 27 25 34 9 1 0 0 0

nginx reload記憶體碎片問題 一

nginx reload記憶體碎片問題 相關資料 jemalloc pmap redis systemtap 記憶體緊縮 問題現象 cache nginx 開啟ip 庫功能 占用700m 記憶體,reload 後記憶體翻倍,無法釋放 root 9186 0.2 7.2 2150680 1786272...

記憶體管理 內部碎片和外部碎片

概念 乙個分割槽內部出現的碎片 即被浪費的空間 不能被利用。能明確指出屬於哪個程序 例子 固定分割槽法中,當6kb的程序被分配了10kb的記憶體空間,就有4kb的內部碎片 乙個程序申請43kb的記憶體空間,某些處理器因為限制 比如其體系結構規定只能整除4 8 16 該程序被分配了44kb,就有1kb...

記憶體中,外部碎片與內部碎片

外部碎片,是由於大量資訊由於先後寫入 置換 刪除而形成的空間碎片。為了便於理解,我們將資訊比作貨物,將儲存空間比作倉庫來舉例子。假設,我們有編號為1 2 3 4 5 6的6間倉庫庫房,前天送來了一大宗貨,依次裝入了1 2 3 4 5號倉庫,昨天又因故將4號庫房的貨物運走了,那麼數值上說我們還有兩間空...