gpt4 book ai didi

linux - 进程因内存过多而被杀死?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:18 25 4
gpt4 key购买 nike

我有一个在 VMWare 上运行的 Ubuntu 12.10(内核 3.9.0-rc2)安装。我给了它 512MB 内存。
cat/proc/meminfo 显示:
内存总量:507864 KB
无内存:440180

我想使用交换(出于某种原因)所以我编写了一个 C 程序分配一个 500MB 的数组(使用 malloc())并用垃圾填充它。但是,程序在填满整个数组之前就被终止了,并且屏幕上会出现一条消息“Killed”。

我想问一下这是否是正常行为,这背后的原因是什么?在我看来,应该使用 swap,因为空闲 RAM 不足。

编辑:我没有提到我有 1GB 交换空间。 cat/proc/swaps 显示:
/dev/sda5 大小:1046524 使用:14672.
当我运行消耗内存的程序时,“已用”数量会增加。但是正如您所看到的,剩下很多交换。那么为什么程序必须被“杀死”?

最佳答案

所以我找不到有效的答案。我有一个临时解决方案:

我修改了虚拟机设置,为 VM 提供 512MB RAM。现在我恢复到 2GB 并运行 5 个并行程序,每个程序消耗 500MB。值得庆幸的是,它们全部运行并且交换被使用。

我只是需要将交换用于交换管理项目。

关于linux - 进程因内存过多而被杀死?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15645240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com