我通常在桌面上运行许多程序和虚拟机。CPU不是瓶颈,而是内存。(购买更多内存不是解决方案,因为它不是我自己的电脑。)
我开始尝试使用compcache,它在压缩内存方面效果很好。我可以通过swappiness 100来增加它的使用。但是当真正的(未压缩)内存开始填满然后Linux开始在大量交换之前清空缓存和缓冲区对我不利的东西因为程序之间的切换变得非常缓慢。
我找不到为缓冲区和缓存保留内存的方法,所以我开始寻找替代方法并找到了 cgroup。
在 cgroups 中,您无法为根资源设置内存限制,因此我尝试将所有进程移动到内存有限的组中,但不知何故它似乎不起作用。
请帮助我如何为缓冲区和缓存保留内存并在早期开始交换到 compcache。
我注意到我经常使用的一个应用程序 (Android Studio) 占用了我的 RAM,如果我不关闭它,我的系统就会变慢。我已经阅读并看到它存在某种错误,我想这很好。
但是当我查看任务管理器时,它说我的 RAM 使用了 77%。但是 Android Studio 使用了大约 1GB,而其他所有东西的总和对我来说似乎不到 2GB。那么这 77% 是怎么回事呢?
这是显示任务管理器和系统规格的屏幕截图。我不是很擅长数学,但我相信这不会加起来。
在 Windows 10 中,任务管理器中的性能选项卡/内存按钮,缓存值是什么意思?
在下面的图片中,它说我有一个 1.3GB 的缓存。这是否意味着RAM缓存?CPU缓存?磁盘缓存?文件系统缓存?以及如何清除它。

技术 YouTuber ThioJoe制作了一个关于 ECC 内存的视频,他在视频中解释了内存中的位如何随机变化,如果没有 ECC 内存,可能会导致数据损坏。
这是一篇关于随机位错误的文章:
“因此,在 72 小时内,地球上海平面的 4 GB 内存中出现至少 1 个比特错误的概率超过 95%。”
引自http://lambda-diode.com/opinion/ecc-memory
一点改变可以使布尔值从真切换为假,反之亦然,所以这似乎是一件大事?
我的电脑没有 ECC 内存,我每天使用它几个小时没有任何问题。
如果宇宙射线引起的“位翻转”经常发生,为什么我的电脑长时间开机不乱?
有足够多的问题询问如何区分大文件,因为diff无法处理它们。
我想知道为什么GNU diff 无法处理它们。
我做了一个小实验。我比较了两个相同的数据集,就像这样
$ time /usr/bin/diff -u <(cat file1) <(cat file2) > /tmp/memoryhog
^C
real 5m6.478s
user 0m0.540s
sys 0m19.184s
Run Code Online (Sandbox Code Playgroud)
这是 top 在我取消工作的同时显示的内容:
3 PID %MEM VIRT SWAP RES CODE DATA SHR nMaj nDRT S PR NI %CPU COMMAND
19087 30.0 16.0g 9.4g 0.2m 16.0g 2.0m R 20 0.5 /usr/bin/diff -u /dev/fd/63 /dev/fd/62
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,输出是空的:
$ stat -c '%s' /tmp/memoryhog
0
Run Code Online (Sandbox Code Playgroud)
(它们实际上不是文件,而是数据库结果,我忘记跟踪diff当时实际消耗了多少字节- 估计每个管道文件 30-60GiB。)
但是那里发生了什么?
diff 当它甚至不需要跟踪单个字节更改时,是否正在分配大量内存?
我只能假设部分原因是必须跟踪行数,但是分配 16GiB 虚拟内存对于该任务来说似乎有点多!
是什么diff觉得需要那么多的内存?或者只是糟糕的内存处理? …
所以我正在阅读地址总线和最大内存大小,所以我的问题是,当计算任何架构的最大内存大小时,2^n 中的 2 在哪里,其中 n 是地址总线位大小来自哪里?“位大小”甚至是什么意思?我很困惑。
我最近组装了一台新电脑,运行良好,但我注意到内存使用率异常高。当运行几个相对轻量级的程序时,它高达 14 GB,而我在任务管理器中看到的最大容量是 1.5 GB,而总和远不及 14 GB。
任务管理器截图:

我做了一些研究,我认为这可能是由于驱动程序泄漏造成的,但我不太确定。这是按字节排序的非分页池:
。
内存使用率通常在启动后立即上升,但我找不到任何自动启动的程序,由于泄漏而导致高使用率。
任何建议将不胜感激,因为我不知道如何解决这个问题。我的系统有 32 GB RAM,所以这不是一个大问题,但仅使用浏览器和打开一些轻量级程序时使用 14 GB 似乎有点多。
它也可能是病毒,但我对此表示怀疑,因为我对下载和其他程序非常小心。
我有一台联想 P50。它有 4 个内存插槽,我购买了 4 个 32 GB Crucial 内存。
看起来硬件可以识别 128 GB。至少,Windows 10 在任务管理器中显示“128 GB,为硬件保留 64 GB”。
然而,在启动过程中,诊断屏幕显示 65536 MB RAM,在 BIOS 中,它还显示 65536 MB 安装内存。
我试过:
msconfig并使用高级选项将内存设置为 131072 (128 GB)我是否有机会通过应用其他技巧在此模型上使用 128 GB 内存?
据说,在 SD 卡上连续写入会导致存储单元磨损,最终导致卡出现故障。我的问题的答案之一是如何实现SD卡的使用寿命达到10年或更长?表示闪存的写入周期数量有限(平均 10k 到 100k)。假设一个场景,SD卡容量为64GB,只消耗了5GB的写入数据,你认为如果这5GB的使用空间达到了100K的写入周期,即使还有足够的数据量,它是否会很快出现磨损或可能出现故障?未使用的空间?
memory ×10
windows-10 ×3
linux ×2
bios ×1
cache ×1
cpu ×1
diff ×1
ecc ×1
gnu ×1
memory-leaks ×1
performance ×1
sd-card ×1
swap ×1
task-manager ×1
windows ×1