[問題] Out of memory (已爬文)
想請問各位前輩
我在Linux(2.6.36) 上寫了一個"收UART資料 存到SD"的程式
在測試的時候發現擺了約1天後 就發生out of memory 死機
(確認沒有我的程式 不會out of mmemory死機)
使用過 mtrace 來抓程式碼memory leak
但結果並無 memory leak
只有一個link list 沒有free 是我來存設定檔的
我在 開機後一分鐘 和 擺了半天後 各抓了一份 /proc/slabinfo
發現有兩個值相差過大 而且都持續增加不會減少
開機
inode_cache 552 658 272 14 1 : tunables 54 27 0 : slabdata 47 47 0
size-32 7200 7260 128 30 1 : tunables 120 60 0 : slabdata 242 242 0
半天
inode_cache 36246 36246 272 14 1 : tunables 54 27 0 : slabdata 2589 2589 0
size-32 41010 41010 128 30 1 : tunables 120 60 0 : slabdata 1367 1367 0
這兩個項目代表 inode_cache(filesystem) size-32(malloc 使用這個)
網路上查了一下 可下 sync;echo 3 > /proc/sys/vm/drop_caches
手動清除 pagecache、dentry、inode
但用過之後情況並沒有改善
我也有檢查過我的程式 所以malloc 都有 free
想請問
1.inode_cache 除了 用 /proc/sys/vm/drop_caches 手動清除
還有甚麼方法可以清除?
5B
2.size-32 我已確定我的程式有malloc 的地方都有做free
有fopen 的地方 都有fclose
為甚麼 size-32 的 使用數 還是一直往上加??
3.使用thread 會是造成這個問題的原因嗎??
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.204.222
※ 文章網址: http://www.ptt.cc/bbs/Linux/M.1419651201.A.D27.html
→
12/27 13:14, , 1F
12/27 13:14, 1F
→
12/27 14:01, , 2F
12/27 14:01, 2F
→
12/27 16:30, , 3F
12/27 16:30, 3F
→
12/27 16:31, , 4F
12/27 16:31, 4F
→
12/27 16:32, , 5F
12/27 16:32, 5F
→
12/27 16:33, , 6F
12/27 16:33, 6F
推
12/27 16:40, , 7F
12/27 16:40, 7F
→
12/27 16:51, , 8F
12/27 16:51, 8F
→
12/27 16:51, , 9F
12/27 16:51, 9F
→
12/27 17:07, , 10F
12/27 17:07, 10F
→
12/27 23:58, , 11F
12/27 23:58, 11F
→
12/28 17:15, , 12F
12/28 17:15, 12F
→
12/28 17:15, , 13F
12/28 17:15, 13F
→
12/28 19:01, , 14F
12/28 19:01, 14F
→
12/28 19:02, , 15F
12/28 19:02, 15F
→
12/29 13:48, , 16F
12/29 13:48, 16F
→
12/29 13:48, , 17F
12/29 13:48, 17F
→
12/29 13:48, , 18F
12/29 13:48, 18F
→
12/29 14:28, , 19F
12/29 14:28, 19F
→
12/29 14:29, , 20F
12/29 14:29, 20F
→
12/29 14:30, , 21F
12/29 14:30, 21F
→
12/29 14:30, , 22F
12/29 14:30, 22F
→
12/29 14:32, , 23F
12/29 14:32, 23F
→
12/29 14:32, , 24F
12/29 14:32, 24F
→
12/29 17:57, , 25F
12/29 17:57, 25F
→
12/29 17:57, , 26F
12/29 17:57, 26F
→
12/29 17:57, , 27F
12/29 17:57, 27F
→
12/29 17:58, , 28F
12/29 17:58, 28F
→
12/29 18:22, , 29F
12/29 18:22, 29F
→
12/30 08:55, , 30F
12/30 08:55, 30F
→
12/30 08:55, , 31F
12/30 08:55, 31F
→
12/30 11:11, , 32F
12/30 11:11, 32F
→
12/30 11:14, , 33F
12/30 11:14, 33F
→
12/30 11:15, , 34F
12/30 11:15, 34F
→
12/30 11:15, , 35F
12/30 11:15, 35F
→
12/30 11:16, , 36F
12/30 11:16, 36F
→
12/30 11:17, , 37F
12/30 11:17, 37F
→
12/30 11:17, , 38F
12/30 11:17, 38F