标签: ram

内存不足,但交换可用

即使有可用的交换,我的服务器也耗尽了内存。

为什么?

我可以这样重现它:

eat_20GB_RAM() {
  perl -e '$a="c"x10000000000;print "OK\n";sleep 10000';
}
export -f eat_20GB_RAM
parallel -j0 eat_20GB_RAM ::: {1..25} &
Run Code Online (Sandbox Code Playgroud)

当稳定(即所有进程都进入睡眠状态)时,我再运行一些:

parallel --delay 5 -j0 eat_20GB_RAM ::: {1..25} &
Run Code Online (Sandbox Code Playgroud)

当稳定(即所有进程都进入睡眠状态)时,使用大约 800 GB RAM/swap:

$ free -m
              total        used        free      shared  buff/cache   available
Mem:         515966      440676       74514           1         775       73392
Swap:       1256720      341124      915596
Run Code Online (Sandbox Code Playgroud)

当我再运行一些时:

parallel --delay 15 -j0 eat_20GB_RAM ::: {1..50} &
Run Code Online (Sandbox Code Playgroud)

我开始得到:

Out of memory!
Run Code Online (Sandbox Code Playgroud)

即使有明显的交换可用。

$ free
              total        used        free      shared  buff/cache   available
Mem:      528349276   518336524     7675784       14128 …
Run Code Online (Sandbox Code Playgroud)

linux swap virtual-memory ram

12
推荐指数
1
解决办法
945
查看次数

当我只有 8 个内存时,Arch Linux 认为我有大约 16 个内存

我已经进行了几次搜索,但我在 Google 上找不到任何关于原因的信息,但是 arch 分配了 7.7 个演出给 ram 和 7.9 个演出。

  • 我只有 8 个演出内存。

  • 它比常规分配了更多的内存来交换

我怎么能改变分配?

的输出cat /proc/meminfo MemTotal: 8091960 kB MemFree: 4925736 kB MemAvailable: 6131188 kB Buffers: 268936 kB Cached: 1219460 kB SwapCached: 0 kB Active: 1527516 kB Inactive: 1301140 kB Active(anon): 768904 kB Inactive(anon): 711440 kB Active(file): 758612 kB Inactive(file): 589700 kB Unevictable: 32 kB Mlocked: 32 kB SwapTotal: 8300540 kB SwapFree: 8300540 kB Dirty: 1960 kB Writeback: 0 kB AnonPages: 1306968 kB Mapped: 382800 kB …

linux swap ram

10
推荐指数
1
解决办法
2367
查看次数

Chrome 吃掉所有 RAM 并冻结系统

如何防止 chrome 占用超过 4GB 的内存。有时,他决定使用 7GB(总共 8GB RAM)之类的东西,并使我的计算机无法使用。

你有什么帮助吗。

PS:我什至没有打开超过 10 个标签。编辑:也许我做了...类似 15 的事情。无论如何,我希望 chrome 冻结或关闭而不是冻结整个系统。

linux arch-linux chrome ram

10
推荐指数
1
解决办法
4044
查看次数

htop 报告的内存使用量比 free 或 top 高得多

以下三个输出基本上是同时进行的:

最佳:

top - 02:54:36 up 2 days, 13:50,  3 users,  load average: 0.05, 0.05, 0.09
Tasks: 181 total,   1 running, 179 sleeping,   0 stopped,   1 zombie
%Cpu(s):  2.5 us,  0.8 sy,  0.0 ni, 96.6 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:  16158632 total, 11234480 used,  4924152 free,      844 buffers
KiB Swap: 16777212 total,        0 used, 16777212 free, 10640832 cached
Run Code Online (Sandbox Code Playgroud)

免费-h:

             total       used       free     shared    buffers     cached
Mem:           15G        10G       4.7G         0B       844K        10G
-/+ buffers/cache: …
Run Code Online (Sandbox Code Playgroud)

memory top htop ram

9
推荐指数
1
解决办法
1万
查看次数

如何转储完整的系统内存?

启动VirtualBox后,计算机变得迟钝,然后由于OOM而完全挂起。通常,OOM 应该开始杀死进程以释放一些空间,但这并没有发生(这是我第二次遇到这种情况)。

我在文本编辑器中有一些未保存的重要工作,所以我希望在使用SysRq+杀死当前控制台中的所有进程后,在系统 RAM 中找到它K。有问题的机器是具有 8 GiB RAM 的笔记本电脑,运行 Linux x86_64 3.7.5,以 SSD 作为目标磁盘。

我的第一次尝试是dd if=/dev/mem of=memory,但在读取 1MiB 数据后失败了。接下来,我尝试了dd if=/dev/fmem of=memory bs=1M,但在读取 3010461696 字节(正好 2871 MiB)后停止了。在查看/proc/mtrr(如下所示)后,我决定尝试添加skip=4096. 这最终变慢了,读取速度仅为 3 MiB/秒,所以我中断了它(产生了 5.8 GiB 的文件)。(至少文件的最后 100 MiB 包含FFs)

reg01: base=0x000000000 (    0MB), size= 2048MB, count=1: write-back
reg02: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back
reg03: base=0x100000000 ( 4096MB), size= 4096MB, count=1: write-back
reg04: base=0x200000000 ( 8192MB), size= 1024MB, count=1: …
Run Code Online (Sandbox Code Playgroud)

memory data-recovery ram

9
推荐指数
1
解决办法
8351
查看次数

安装 4GB RAM 后处理器使用率增加

我有一个 Intel Atom D2700 (Synology NAS DS412+),4GB RAM 运行内核 3.2.30 x86_64。本机有一个 DIMM 插槽。

我和其他人发现的一件事是,当添加 4GB DIMM 与 2GB DIMM 时,该单元在负载下会遇到明显更高的 CPU 使用率(例如,“重型”Java 应用程序,如 Minecraft 服务器或 Plex 转码等) . 许多用户发现,当他们降回 2GB 时,所有这些高负载问题都会消失。

这是可能导致这种情况的特定于 Linux 的东西吗?或者这是 Atom 本身的问题?

performance ram atom

9
推荐指数
1
解决办法
9552
查看次数

kernel: EDAC MC0: UE page 0x0 是否指向坏内存、驱动程序或其他内容?

kernel: EDAC MC0: UE page 0x0, offset 0x0, grain 0, row 7, labels ":": i3200 UE

今天突然间,我们的 CentOS 6.4 版(最终版)系统开始抛出 EDAC 错误。我重新启动,错误停止了。

我一直在寻找答案,但它们分为两个阵营,内存或芯片组。我想要一些关于在哪里进一步搜索以缩小到芯片组或内存的建议。

linux memory ram

9
推荐指数
1
解决办法
8762
查看次数

如何创建一个从不交换到磁盘的固定大小的 Linux ramdisk?

我想创建一个从不交换到磁盘的固定大小的 Linux ramdisk。请注意,我的问题不是“为什么”我要这样做(例如,它是出于教育目的或研究目的):问题是如何去做。

据我所知ramfs,不能限制大小,所以它不符合我对固定大小 ramdisk 的要求。

似乎tmpfs 可以交换到磁盘。所以它不符合我从不交换到磁盘的要求。

如何创建一个从不交换到磁盘的固定大小的 Linux ramdisk?

例如,是否可以tmpfs在内部创建ramfs(这样的解决方案是否符合我的要求),如果可以,如何创建?

请注意,性能不是问题,ramdisk 已满并触发“磁盘已满”错误也不是问题。

linux filesystems ram disk

9
推荐指数
1
解决办法
3901
查看次数

64 位 Linux 无法识别 3 到 32 GB 之间的 RAM

我的问题是由错误的内存模块和很可能是损坏的内核二进制文件引起的。


我刚刚用基本上全新的硬件启动了我的电脑。我之前一直在运行 Debian 6.0 AMD64,那里没有任何变化(字面上;我只是从旧主板上拔下硬盘,然后将它们重新连接到新主板),但发现了一些奇怪的东西:

  • 我已经物理安装了 4 x 8 GB 的 RAM
  • UEFI/BIOS 设置报告 16383 MB 的 RAM
  • Linuxfree -m报告 2985 MB 的 RAM

2985 MB 似乎太接近神奇的 3 GB 标记,纯属巧合,但uname -r打印出来2.6.32-5-amd64;显然是 64 位内核,这是我正在使用的系统驱动器上安装的全部内容。新主板是华硕 M5A97 Pro,它有四个 DDR3 插槽,据说支持 8 GB 模块。内存模块本身是相同的,四个 Corsair XMS3 PC12800 8 GB,一起购买。

我没有详细查看 UEFI 设置,但确实浏览了它并没有看到任何似乎需要更改以启用大量 RAM 的内容。

编辑:进一步确认我确实在运行 64 位:

# file `which free`
/usr/bin/free: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for …
Run Code Online (Sandbox Code Playgroud)

linux 64bit ram

8
推荐指数
2
解决办法
2万
查看次数

即使有足够的 RAM,Java“无法为对象堆保留足够的空间”

我目前在运行 Java 时遇到了一些问题。由于堆问题,它不会启动。但是我有超过 9 GB 的可用内存(如果您认为缓存是空的,甚至是 16 GB)。这是我得到的错误(和free命令)

root@server: ~ # java
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

root@server: ~ # free
             total       used       free     shared    buffers     cached
Mem:      25165824   15941148    9224676          0          0    7082176
-/+ buffers/cache:    8858972   16306852
Swap:            0          0          0
Run Code Online (Sandbox Code Playgroud)

我在虚拟化服务器上​​运行 64 位 Debian。虚拟化软件是 OpenVZ。这是我的 Java 版本(我可以在停止两个 VM(当前正在运行的 4 …

debian java ram

8
推荐指数
2
解决办法
6万
查看次数