我正在使用带有 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) 我的一些小尺寸 Ubuntu 设备的内存不足。我注意到它snapd正在运行并使用了大量的 RAM。我抓住机会停止了snapd服务,事情仍然在运行,但我想知道我的机器是否会正确重启。
我想知道的是,在 Ubuntu 16.04 服务器的通用安装中是否有需要快照才能运行的核心服务?
另外,我需要禁用哪些服务systemctl才能摆脱snapd?
在 11.04 上,/proc/[pid]包含oom_score_adj,但man proc描述了旧的oom_adj. 我在谷歌上搜索了有关如何使用它的任何信息,但没有成功。
我需要安排的是由“pbs”或“gridengine”启动的进程在其他任何东西被杀死之前被杀死。我怎样才能做到这一点?
我注意到free命令报告在 Trusty 和 Xenial 之间发生了变化。这是我的一台 Trusty 计算机上显示的“free -m”:
$ free -m
total used free shared buffers cached
Mem: 7916 7645 271 99 455 1764
-/+ buffers/cache: 5426 2490
Swap: 24999 805 24194
Run Code Online (Sandbox Code Playgroud)
这是(不同的)Xenial 系统上的等效项:
$ free -m
total used free shared buff/cache available
Mem: 3553 1192 857 16 1504 2277
Swap: 3689 0 3689
Run Code Online (Sandbox Code Playgroud)
我主要用来查看的 +/- 缓冲区/缓存行已经消失了。我应该如何解释新数字?
以前,我使用以下命令检查 GPU 上的内存使用情况:
nvidia-settings -q all | grep Memory
Run Code Online (Sandbox Code Playgroud)
我正在使用numpy和处理我的 GPU 上的一些科学数据theano。我在运行 gnome 桌面的情况下执行此操作,并且设备上已经使用了 380 Mb 的内存。所以我停止了 lightdm 以释放更多的 GPU 内存;但是,现在 nvidia-settings 工具不再有效。
它只是错误,没有显示
ERROR: Cannot open display ':0.0'.
Run Code Online (Sandbox Code Playgroud)
是否有其他方法可以在不使用此工具的情况下获取 GPU 内存?有什么方法可以让它在无头模式下运行吗?
它变得如此可怕,我什至无法切换到 TTY1 来强制重启。我必须硬重置,我失去了工作。
理想情况下,我希望能够在 Ubuntu 上使用 chrome 浏览器,而不必一直提醒自己关闭标签。
是否有任何适用于 Chrome 的扩展程序或适用于 Ubuntu 的工具可以帮助我避免超过 Ubuntu 耗尽所有 RAM 并变得无能为力的情况?
我目前正在调试 VPS 的性能问题,为此我试图了解哪些进程占用的内存最多。阅读顶部,这是我得到的:
Mem: 366544k total, 321396k used, 45148k free, 380k buffers
Swap: 1048572k total, 592388k used, 456184k free, 7756k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12339 ruby 20 0 844m 74m 2440 S 0 20.8 0:24.84 ruby
12363 ruby 20 0 844m 73m 1576 S 0 20.6 0:00.26 ruby
21117 ruby 20 0 171m 33m 1792 S 0 9.3 2:03.98 ruby
11846 ruby 20 0 858m 21m 1820 S 0 6.0 0:09.15 …Run Code Online (Sandbox Code Playgroud) 添加preload包后,我的应用程序似乎加快了速度,但如果我复制一个大文件,文件缓存会增长两倍以上的文件大小。
通过将单个 3-4 GB 的虚拟机图像或视频文件传输到外部驱动器,这个巨大的缓存似乎从内存中删除了所有预加载的应用程序,导致加载时间增加和总体性能下降。
有没有办法复制大的、多千兆字节的文件而不缓存它们(即绕过文件缓存)?或者一种将特定文件夹列入白名单或黑名单以防止缓存的方法?
我正在使用 Ubuntu 14.04。最近,当我使用具有 sudo 权限的用户通过 SSH 登录时,我运行的每个命令都会导致“无法分配内存”错误。这是我在控制台上尝试过的一些
myuser@mymachine:~$ whoami
-bash: fork: Cannot allocate memory
myuser@mymachine:~$ uname -a
-bash: fork: Cannot allocate memory
Run Code Online (Sandbox Code Playgroud)
即使我尝试sudo reboot now我也会收到上述错误,所以我不知道我还能尝试什么来解锁我的实例。如果重要的话,主机是 DigitalOcean。
编辑:根据此处给出的答案/建议是“免费”的输出
myuser@mymachine:~$ free
-bash: fork: Cannot allocate memory
Run Code Online (Sandbox Code Playgroud) 我有一个进程,我想查看它在运行时消耗了多少内存。
现在我这样做:
ps faux | grep casper
Run Code Online (Sandbox Code Playgroud)
但这只是给了我那一刻的信息。很高兴看到该值随着脚本的进行而发生变化。
我有什么办法可以做到这一点?