我正在处理非常大的数据集。我试图在一个数组中分配16 in
由于某些原因,我不知道,如果我试图访问这个位置(比如说)“6亿”,我会发现这个位置是不可访问的,并且在运行时我会得到一个分段错误错误。为了节省每个指针的地址,这需要更多的内存空间(多出80亿字节)。以这种方式,我的程序被杀了,而现在我没有,但当我试图访问一些地址时,我会出现分段错误。编辑如果我分配了10块1亿6千万(甚至更多),我没有任何错误,内存被分配。问题在于分配一个大块。我现在的问题是:有没有办法克服这个限制?
我知道docker run -m 256m --memory-swap 256m将限制容器,以便它最多可以使用256 MB的内存,而不需要交换。(421) kill error: No such process显然,其中一个工作人员分配的内存比允许的要多如果-m的效果是在进程分配太多内存的情况下调用OOM杀手,那么当指定-m和--oom-kill-disable时会发生什么?像上面这样尝试它会得到以下结
我想测试内核OOM杀手在我的嵌入式Linux上是否正常工作。我使用一个应用程序测试来填充所有内存,并查看如果系统内存不足,OOM是否会杀死我的应用程序。++count);
exit(0);
结果:MyApplication triggered out of memory codition (oomkiller not called): gfp_mask=0x1200d2, order=0, oomkilladj=0
我试图通过添