我遇到了一个问题,OOM杀手被触发了几次。我在互联网上做过研究,发现了很多相关的线索。但有几件事我还是很困惑。我希望有人能帮我。
环境: iMX6 (32位)。用户/内核空间拆分: 2G-2G
TotalRAm - 4GB
一些重要的日志:
top调用oom杀手: gfp_mask=0x201da,order=0,oom_score_adj=0
我看到它试图在HIGHMEM区域(从order=0)分配1页(传染性的)内存。如果我错了,请纠正我。
DMA免费:1322780kB最低:4492kB低:5612kB高:6736 DMA active_anon:0kB inactive_anon:0kB active_file:84kB
DMA: 941*4kB (UEMC) 1211*8kB (UEMC) 1185*16 4kB (UEMC) 836*32 4kB (UEMC) 554*64 4kB
(欧电)295*128 106(欧电)106*256 106
无HighMem :480 min min:512 min低:2384 min高:4256 min active_anon:2021148kB inactive_anon:70364kB active_file:0kB
HighMem: 0*4kB1*8KB (R) 0*16 4kB 7*32 4kB (R) 0*64 4kB 0*128 4kB 0*256 4kB 0*512 4kB 0*1024 4kB 0*2048 4kB 0*4096 4kB 0*8192 4kB
我相信OOM杀手是被触发的,因为自由海姆(480 as )低于最小值(512 As)。如果我错了,请再次纠正我。
我的问题:
Morelog:(从完整日志中取出):
DMA /cpu:
CPU 0:嗨: 186,btch: 31美元: 0
CPU 1:嗨: 186,btch: 31美元: 0
CPU 2:嗨: 186,btch: 31美元: 0
CPU 3:嗨: 186,btch: 31美元: 0
每cpu HighMem:
CPU 0:嗨: 186,btch: 31美元: 51
CPU 1:嗨: 186,btch: 31美元: 20
CPU 2:嗨: 186,btch: 31美元: 4
CPU 3:嗨: 186,btch: 31美元: 14
active_anon:505287 inactive_anon:17591 isolated_anon:0
active_file:21 inactive_file:0 isolated_file:0
不可逐出:0脏:0写回:0不稳定:0
免费:330815 slab_reclaimable:1134 slab_unreclaimable:3487
映射:15956 shmem:25014页:1982年弹出:0
25046总分页页
983039页内存
331349免费网页
9947预留页
2772版
543663页共享
0页交换缓存的
cat /proc/pagetypeinfo
分页顺序: 13
每组8192页
订单0 1 2 3 4 5 6 7 8 9 10 11 12 13
节点0,区域DMA,类型Unmovable 1 0 9 8 3 1 1 1 0 1 0 Node 0,区域DMA,类型可再生4 5 5 1 0 2 0 1 1 0 1 0 1 0 Node 0,DMA,1 6 4 0 0 1 1 2 4 3 3 4 28
节点0,区域DMA,类型后备0 0 0 1
节点0,DMA区,类型为CMA 1 1 2 0 0 0 1 0 1 0 1 3
节点0,区域DMA,类型隔离0 0 0
节点0,区域HighMem,类型不可移动11 7 2 2 9 6 3 3 1 0 1 0
节点0,区域HighMem,类型可恢复的0 0 0
节点0,区域HighMem,类型可移动23 201 4771 4084 1803 403 105 69 57 38 23 21 8 23
节点0,区域HighMem,类型为备用0 0 0 1
节点0,区域HighMem,类型为CMA 0 0 0
节点0,区域HighMem,类型隔离0 0 0
块数型不可移动可再生备用CMA隔离装置
节点0,区域DMA 5 1 33 1 16 0
节点0,区域HighMem 2 0 62 1 0 0
如有需要,我很乐意张贴更多的日志。
谢谢你,
斯里克
发布于 2017-04-27 15:53:25
可能很长时间了,但你有没有试过
vm.overcommit_memory = 2
vm.overcommit_ratio = 80至
/etc/sysctl.conf
发布于 2021-08-22 15:55:45
由于32位内核只能直接访问4GB的虚拟内存,并且硬件访问的可用地址空间受到很大的限制,所以虚拟内存出现了很大的变化。例如,网络适配器硬件加速可能需要某些特定地址范围内的内存,如果在该特定范围内耗尽RAM,系统要么必须运行OOM Killer,要么关闭网络适配器。这是真的,即使你的系统可以在一些不相关的区域免费使用。
有关详细信息,请尝试查看以下链接:
也许这个也是:
TL;DR:如果您需要2GB以上的内存,请安装64位操作系统。
https://stackoverflow.com/questions/43662350
复制相似问题