我们有没有swap的嵌入式Linux系统。
目前,当内存使用百分比增加超过阈值时,我们必须发出警报。并在内存使用百分比增加超过(更高)阈值时重新启动。
为什么要这样做:如果某些程序泄漏,我们可以在内核开始杀死我们的进程之前进行安全重启(这可能导致数据损坏或不可用)。
但是我们有一个问题:
如何计算可用于我们目的的内存使用率-%?
我们尝试使用 /proc/meminfo 的值来计算内存使用情况:
/ # cat /proc/meminfo
MemTotal: 126744 kB
MemFree: 58256 kB
Buffers: 16740 kB
Cached: 31308 kB
SwapCached: 0 kB
Active: 37580 kB
Inactive: 24000 kB
Run Code Online (Sandbox Code Playgroud)
没有成功:
(MemTotal - MemFree) 不可用,因为它包含例如缓存。
(MemTotal - MemFree - Buffers - Cached)确实忽略了 的影响Inactive。所以它也给出了太大的内存使用值。
(MemTotal - MemFree - Buffers - Cached - Inactive) 不可用,因为结果可能为负。
我知道 linux 使用未使用的 RAM 来缓存一些文件。但我想知道,它实际上缓存了哪些文件!如果你看看free:
Gesamt Belegt Frei Gemeinsam Puffer Cached
Speicher: 5,8G 3,7G 2,1G 0B 259M 1,7G
-/+ Puffer/Cache: 1,8G 4,0G
Auslagerungsdatei: 4,0G 0B 4,0G
Run Code Online (Sandbox Code Playgroud)
它说我的 1.7 GB RAM 用作缓存。我知道这不是有害行为,但我很好奇 Linux 认为哪些文件值得缓存。是否有命令/文件显示缓存文件?
我的问题是“页表存储在哪里:在物理内存(RAM)中或作为用户空间中的某些数据结构”。
PS:到目前为止我所了解的:进程内存布局有几个段(代码/数据/堆/堆栈等)。由于现在不使用分段,因此使用分页并且每个分段将有许多固定大小的页面。每个段也将有相应的虚拟地址空间 (VAD)。这些将指向主页表,主页表将指向辅助页表,最后 pte 将指向磁盘中的页框(??我希望这是正确的)。那么,如果 VAD 在用户空间中,那么页表是否也驻留在用户空间中,或者它们存储在 RAM 中?
我有一台紧凑型台式电脑,我想用 2 或 3 GB 或 RAM 更新它。我很困惑这个系统有什么类型的 RAM 是DDR2 还是 DDR3。我电脑的处理器是AMD Athlon。
所以,如果可能的话,请让我知道如何检查内存类型是 DDR2 还是 DDR3。
以及如何通过查看 RAM 来检查它的类型。
完成一次传递需要 35 分钟(默认配置是四次传递),所以我飞跃并假设测试将在大约 105 分钟内结束。
3小时后我回来了,期待它完成;然而,第三关才进行到一半!(零错误,谢天谢地)。解释是什么?
规格方面:我在联想 X220、64 位 i5、8GB RAM 上通过可启动 USB 运行 memtest86。
我最近升级了我的主板,现在正在查看 RAM。我有一个华擎 N68C-GS4FX 主板和一个 AMD Phenom II X4 940 处理器。我使用了 CrucialPC 系统扫描应用程序,在内存窗口中它确实建议升级到 DDR3 RAM(因为它适合主板),但我的印象是我的处理器不能与 DDR3 RAM 一起使用。
假设“top”实用程序使用的 VIRT/RES/SHM 术语:
cgroup 是否memory.limit_in_bytes适用于 VIRT 或 RES 内存大小?我问是因为在 Fedora 23 中,在我看来,RES(常驻)内存受 cgroup 限制。然后我安装了 Fedora 25,突然间我得到了以前没有发生过的频繁的进程终止(一些 dmesg 输出包含在底部以说明问题)。我有一种预感,在 Fedora 23 和 25 之间,cgroup 改变了行为,现在似乎限制了 VIRT 而不是 RES 内存使用。
谁能证实我的怀疑?有没有办法恢复旧的行为?我在 cgroup 内核文档中四处搜索,但没有找到任何东西,可能是因为我搜索的术语不正确。
dmesg 输出:
Tue Jun 20 01:46:12 2017: Memory cgroup out of memory: Kill process 787 (Web Content) score 204 or sacrifice child
Tue Jun 20 01:46:12 2017: Killed process 787 (Web Content) total-vm:14151032kB, anon-rss:5000940kB, file-rss:6132kB, shmem-rss:115956kB
Run Code Online (Sandbox Code Playgroud) 这里top按内存排序
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4927 shadi 20 0 2227492 320544 127896 S 0.7 8.2 0:42.40 firefox
4984 shadi 20 0 2071260 218544 100976 S 0.3 5.6 0:27.41 Web Content
Run Code Online (Sandbox Code Playgroud)
ATM,我只打开了 1 个 firefox 选项卡,我从中提交了这个问题。我的笔记本电脑有 4GB RAM,因此 1 个标签页为 200 MB Web Content。如果我关闭 firefox,Web Content就会消失(我必须重新输入这个问题……哈哈),所以我想它与 firefox 有关。
什么Web Content?
有什么方法可以“重置”或“清除”系统管理的窗口分页文件大小?就我而言,我安装了 16 场内存,并且所有分页文件设置都设置为自动。在某个时间点发生了内存泄漏,我的 ~2 gb 页面文件的大小增加到 16 GB。如何强制 Windows 将其大小重置为原始大小?我试过完全禁用它并重新启用,将自定义大小设置为 2 GB,然后将其设置回自动 - 在返回自动时它总是变回 16 GB。
我有一台带有 Intel-Q85 芯片组(Haswell)的旧 Lenovo ThinkCentre M83 SFF i3-4130(序列号 S4C05873)。
所以你能告诉我是否可以使用: