有时我会处理大量的数据转储,我想保留在内存中进行处理。有时我错误地计算了我的程序将产生的内存量,或者调试器将内存使用量乘以超出我的可用内存的系数。
每当我启动一个内存饥渴的进程时,这就是我对一个健全的操作系统的期望:尝试吃掉所有可用内存,然后很好地要求其他一些非必要进程放弃一些他们不需要的内存,然后写交换。
这就是 Ubuntu 为我所做的:吃掉所有 fre 内存,然后让操作系统交换所有基本服务(gnome 会话、终端、键盘),然后冻结并等待我拔掉电源插头。
两个问题:
我正在 Virtual Box 中安装 Ubuntu;我的主机操作系统是 Windows 7,我的系统上有 6GB 的 RAM。一个关于在虚拟机上设置 Ubuntu 的教程(这个,第 14 步:http : //www.aztcs.org/meeting_notes/linuxsig/ubuntuintovirtualbox/ubuntuintovirtualbox.htm)说将 RAM 设置为总 RAM 的 45%我有可用的空间,在我的情况下大约是 2.7GB。这样对吗?
此外,当我为 vm 分配 RAM 时,该 RAM 现在是否专门为 vm 保留,如果是,它是否仅在 vm 运行来宾操作系统时为 vm 保留,或者它是否在 RAM 中创建了永久分区,即,当我停止运行并退出虚拟机时,我的主机操作系统 (Windows 7) 是否会重新获得所有 6GB 的 RAM 作为其可用 RAM?
我用我的电脑进行科学编程。它具有健康8GB的 RAM 和12GB交换空间。通常,随着我的问题变得越来越大,我超出了所有可用的 RAM。而不是崩溃(这将是首选),Ubuntu 似乎开始将所有内容加载到交换中,包括 Unity 和任何打开的终端。如果我没有及时赶上一个失控的程序,我只能等待 - 切换到命令提示符需要 4-5 分钟,例如。Ctrl-Alt-F2在那里我可以杀死有问题的进程。
由于我自己的愚蠢超出了本论坛的范围,当我用完单个违规程序的所有可用内存时,如何防止 Ubuntu 通过颠簸崩溃?
打开一个终端,启动python,如果你已经numpy安装,试试这个:
>>> import numpy
>>> [numpy.zeros((10**4, 10**4)) for _ in xrange(50)]
Run Code Online (Sandbox Code Playgroud)
* 警告:可能产生不良影响,通过监控进程iotop或top及时终止进程。如果没有,我会在你重启后见到你。
我正在使用带有 Gnome-Classic 的 Ubuntu 12.10。我经常遇到这个错误,几乎所有的程序,无论大小。当我尝试打开它们时,它们没有启动,而是收到一条错误消息,内容为Could not launch 'Program' - Failed to fork child process (Cannot allocate memory)。直到最近几周,这才成为问题。

我无法辨别导致此错误的程序之间的任何共性。这似乎更多的是时间问题。在我的计算机运行了一段时间后,从一天到几天不等,然后我似乎无法启动任何新程序。
我知道防止此错误的唯一方法是重新启动计算机。
为什么我会收到这个错误,我该怎么做才能阻止它发生?
我运行了 GRUB 菜单中可用的 memtest,它没有报告任何错误,所以我认为这不是硬件故障。
我也跑了sudo apt-get check,没有发现错误。
这是一些请求的命令行输出:
$ free -m
total used free shared buffers cached
Mem: 3945 3753 191 0 181 475
-/+ buffers/cache: 3096 848
Swap: 3813 60 3753
$ swapon -s
Filename Type Size Used Priority
/dev/sda6 partition 3905532 61648 -1
$ ulimit -a
core file size (blocks, -c) 0
data seg …Run Code Online (Sandbox Code Playgroud) 我有一台安装了 4GB 内存的华硕 G50vt-x5 笔记本电脑。但是 Ubuntu 10.10 仅显示 3GB 的 RAM。为什么它只显示 3GB 的 RAM 而不是完整的 4GB?free命令的输出是:
neal@ubuntu:~$ free
total used free shared buffers cached
Mem: 3095668 2972784 122884 0 747996 1590044
-/+ buffers/cache: 634744 2460924
Swap: 0 0 0
Run Code Online (Sandbox Code Playgroud) 它变得如此可怕,我什至无法切换到 TTY1 来强制重启。我必须硬重置,我失去了工作。
理想情况下,我希望能够在 Ubuntu 上使用 chrome 浏览器,而不必一直提醒自己关闭标签。
是否有任何适用于 Chrome 的扩展程序或适用于 Ubuntu 的工具可以帮助我避免超过 Ubuntu 耗尽所有 RAM 并变得无能为力的情况?
我使用的是带有 SFTP 和控制台的 Ubuntu VPS。我需要一个特定的进程来仅使用 60% 的 CPU 和 2048 MB 的 RAM。
我还需要另一个进程仅使用 30% 的 CPU 和 1024MB 的 RAM。
如何限制进程的 CPU 和 RAM 使用量?
打开电脑大约 3 到 4 小时后,compiz 的“内存使用量”从300MB上升到1.5GB!
怎么了?怎么了?
这是系统监视器的屏幕截图:

ram ×10
memory-usage ×3
cpu ×2
11.04 ×1
14.04 ×1
16.04 ×1
command-line ×1
compiz ×1
duplicate ×1
hardware ×1
memory-leak ×1
swap ×1
top ×1
unity ×1