打开电脑大约 3 到 4 小时后,compiz 的“内存使用量”从300MB上升到1.5GB!
怎么了?怎么了?
这是系统监视器的屏幕截图:

我正在使用 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) 我只是想知道您是否可以拥有一个太大的交换分区。如果是,什么时候交换分区太大?交换分区太大有什么缺点/不良影响(即使我有足够的磁盘空间)?
如果不是,拥有超过推荐的交换空间有什么好处?
是否可以通过终端查询我的主板可以占用多少内存?
我想看看我是否甚至可以升级。
我在 USB 适配器中有一个 MicroSD 卡(它插入我机器上的 USB 端口,就像一个 USB 闪存驱动器)。我使用 Unetbootin 使其成为带有 Kubuntu 的可启动 USB 闪存驱动器。但是我需要在它工作时取消。所以我从控制台中止了 Unetbootin 进程。
从那以后,我无法格式化 MicroSD 或删除 Kubuntu 制作的文件夹。我也试过mkdosfs,没有成功。我也不能挂载驱动了?我该怎么做才能使该驱动器再次可用?
尝试在 GParted 中创建一个新的分区表,如 Eliah Kagan 的回答中所述,不起作用。它失败并显示错误消息“不可能创建分区表”(“无法创建分区表”)。
我对这个很感兴趣,现在让我解释一下我想用它做什么。我准备购买 32GB 的 RAM 并且已经拥有四核。我的想法是在 GRUB 中实现另一个选项,它将完全做到这一点:
/分区移动到ramfs,然后从那里启动 ubuntu我已经有了 SSD,我认为rsync同步文件不会花费太多时间。而且,数据丢失不太重要,除非它会丢失超过 30 分钟的活动工作,因为我的计算机的正常运行时间几乎是 99.99%,从不关机,所以真的不要认为这会变得更大问题不是从硬盘驱动器强制关闭电源。
/ 文件系统不大,大约7GB。
现在我的问题是:这个想法是否“具有成本效益”,会rsync占用大量资源,并且已经在某个地方实施了一些类似的解决方案吗?
当我free -m在命令行上运行时,它会显示我使用的内存,如下所示。当我运行时htop,显示的已用内存非常低。
这是为什么?它是另一种代表吗?我是 Linux 新手。所以我对这些东西完全空白。
total 3 used free shared buffers cached
5863 4980 882 0 903 3025
Run Code Online (Sandbox Code Playgroud)
顶:
Mem[|||||#####*****1076/586]
Run Code Online (Sandbox Code Playgroud)
free 中的已用内存显示为 4980MB,htop 中显示为 1076MB。它们实际上代表什么?
自从我升级到 15.10 以来,fdisk -l报告了 16 个 ram 磁盘 ( /dev/ram0... /dev/ram15)。我有点不确定这些是做什么用的。删除它们是否安全?如果没有,我怎样才能摆脱那个 fdisk 输出?
情况:修复Out of MemoryUbuntu 的 Matlab 中的错误
目标:在外部 HDD/SSD 上分配一些虚拟内存和/或交换;读/写从 20 GBps 减少到 0.1 GBps,没关系!
术语:这里的交换和虚拟内存
不,交换和虚拟内存是完全不同的。例如,内存映射 1GB 文件使用额外的 1GB 虚拟内存,但交换的使用没有变化。交换是一种后备存储形式。虚拟内存的许多用途与后备存储无关。(并且存在具有虚拟内存但没有交换的系统以及具有交换但没有虚拟内存的系统。)
消费硬件是有限的,所以我需要使用更多的虚拟内存和/或与我的外部硬盘交换。Matlab 说的是交换内存(TODO 不包括虚拟内存?)
Linux 系统 — 使用
mkswap和swapon命令更改交换空间。
系统特点
你可以看到你有多少 swapon -s
Filename Type Size Used Priority
/dev/sda3 partition 8326140 0 -1
Run Code Online (Sandbox Code Playgroud)Matlab 的配置
% /sf/answers/2517972831/
com.mathworks.services.Prefs.setIntegerPref('JavaMemHeapMax', 2048); % MB
% TODO cannot find ways how to put Matlab use /dev/sda3
Run Code Online (Sandbox Code Playgroud)所以你看到我的 Matlab 没有使用它。我Out of Memory在 Matlab 中收到大矩阵的错误。我在将reshape矩阵转换为向量和编写并行代码方面没有成功。所以我想使用虚拟内存,因为我需要完成工作;费率无所谓。
伪代码 …