Lab*_*ain 10 cache memory-usage ram
几个月前我才切换到 Ubuntu。几天前,我发现系统将缓存存储在占用大量空间的内存中,虽然我得到了缓存内存的好处,但现在这让我陷入困境。
正如您在这张图片中看到的,Ubuntu 占用了我 50% 以上的 RAM。此外,我使用了 11.6 GiB 的 23.3%,这基本上意味着我的系统占用了超过 75-80% 的内存......
现在,我已经搜索了很多次如何清除我的缓存,我发现sync; echo 1 > /proc/sys/vm/drop_caches具有 sudo 权限的命令可以清除它,但是这个命令只在开始时起作用,就像我使用这个命令并看到我的缓存一样大幅减少。但是现在,当我在运行它后看到我的缓存内存时,它保持不变。
谁能帮我解决这个问题?
PS我想如果我尝试升级我的内存,那不会解决这个问题......
mch*_*hid 25
如果系统占用了缓存中的所有空间,那么我将无法使用内存
这不是真的。缓存 RAM 并不能确定正在使用的 RAM。您将能够使用 RAM,这就是它被称为缓存的原因——它可以根据需要使用和丢弃。事实上,这与你的假设正好相反。如果消除缓存的 RAM,您将无法使用缓存的内容。
现在,我已经搜索了很多次如何清除缓存,我发现了同步;echo 1 > /proc/sys/vm/drop_caches 具有 sudo 权限的命令可以清除它,但是这个命令只在开始时起作用,就像我使用这个命令并看到我的缓存我的它大大减少一样。但是现在,当我在运行它后看到我的缓存内存时,它保持不变。
如果您关闭了swappiness,您只需要手动清除缓存。不建议禁用 swappiness来提高性能,因为这实际上会降低系统性能。
与 Windows 不同,Ubuntu 不会因为内存管理的差异而在大量 RAM 负载下崩溃。禁用这些功能会显着降低性能。
总而言之,缓存 RAM 不是正在使用的 RAM,并且不会最大化您的 RAM 或降低系统性能,因为缓存 RAM 会根据需要自动丢弃。相反,缓存 RAM 会在需要时使用它来提高性能。
小智 20
缓存内存实际上是空闲内存。
一旦其他空闲内存用完,它就可以(并且将)作为免费提供给任何需要内存的进程。
同时,内核会跟踪缓存在这块空闲内存中的信息。
预计该信息不会被耗时的 i/o 写入某处。它要么已经写好,要么已经读过,而且从来没有改变过。可以安全(且快速)地从内存中删除此信息。
Har*_*ica 15
RAM没有被使用的缓存...它是被借由高速缓存!这意味着它将在您需要时立即返回供您使用。
如果您的软件请求一块内存,系统就会“给你”并给出内存块。如果恰好有缓存放在那里,则缓存元素将被删除(即它们不再在缓存中,如果需要,必须再次从磁盘中获取)。
更智能的系统将明智地选择从缓存中删除哪些元素来为您提供内存。
raj*_*raj 10
打开您的终端 (Ctrl+Alt+T),然后输入命令:free -h. 你会得到这样的输出:
total used free shared buff/cache available
Mem: 15Gi 2.0Gi 10Gi 33Mi 2.7Gi 13Gi
Swap: 31Gi 0B 31Gi
Run Code Online (Sandbox Code Playgroud)
这里你有 15G 的总内存,2G 被使用,2,7G 是缓存,10G 显示为“免费”。但是看看最后一列:它显示 13G 为“可用”。这意味着您可以使用13G 的 RAM(即空闲+缓存的总和),尽管只有 10G 显示为“空闲”。正如其他答案所指出的,缓存内存是临时的:如果需要,它会被分配给应用程序,就像“空闲”内存一样;在这方面,这两者之间没有区别。
这样看:系统使用你电脑上的部分空闲内存来临时缓存从磁盘读取的数据,以加快磁盘操作。但是不管用作缓存,这块内存仍然可以被应用程序自由使用,也就是说,如果应用程序需要它,它将分配给应用程序(使缓存失效)。
好吧,我已经弄清楚了该sync; echo 1 > /proc/sys/vm/drop_caches命令的问题,我在某处拼错了该命令,现在如果我正确使用该命令,它会清理我的缓存内存,因此我的问题似乎得到了解决,尽管有更多答案供将来参考和使用社区将受到赞赏。
| 归档时间: |
|
| 查看次数: |
1821 次 |
| 最近记录: |