Linux吃掉了我的内存

举报
张俭 发表于 2023/12/29 17:42:37 2023/12/29
【摘要】 原文地址https://www.linuxatemyram.com/index.html 这是怎么了Linux借用了未使用的内存用来做磁盘缓存。这让你看起来很缺少内存,但其实没有,一切都在正常工作 为什么要做这些事磁盘缓存使得系统反应更灵敏,响应更快。这没有任何坏处,除了对那些感到疑惑的新手而言。它永远不会以任何方式占用应用程序的内存!译者注:有些中间件、数据库,会避免使用Linux的磁盘...

原文地址

https://www.linuxatemyram.com/index.html

这是怎么了

Linux借用了未使用的内存用来做磁盘缓存。这让你看起来很缺少内存,但其实没有,一切都在正常工作

为什么要做这些事

磁盘缓存使得系统反应更灵敏,响应更快。这没有任何坏处,除了对那些感到疑惑的新手而言。它永远不会以任何方式占用应用程序的内存!

译者注:有些中间件、数据库,会避免使用Linux的磁盘缓存,直接操作磁盘,管理自己的缓存。但这不包括大多数应用程序

如果我想运行更多的应用程序怎么办?

如果您的应用程序需要更多的内存,它们可以取回磁盘缓存使用的一部分。磁盘缓存始终可以立即归还给应用程序!您并不缺少RAM

我需要更多SWAP内存吗

不,磁盘缓存仅借用应用程序当前不需要的内存。它不会使用SWAP MEMORY。如果应用程序需要更多的内存,则只需将其从磁盘缓存中取回即可。他们不会从磁盘开始交换内存

译者注:现在使用磁盘交换内存的已经越来越少了

如何阻止Linux执行此操作?

您不能禁用磁盘缓存。任何人都想禁用磁盘缓存的唯一原因是,他们认为它会占用应用程序的内存,而事实并非如此!磁盘缓存使应用程序加载速度更快,运行更流畅,但是它永远不会占用它们的内存!因此,绝对没有理由禁用它!

译者注:同上,这句话有些绝对

但是,如果发现自己需要快速清除一些RAM来解决另一个问题(例如VM行为异常),则可以使用如下命令强制linux以非破坏性的方式删除高速缓存。

echo 3 | sudo tee /proc/sys/vm/drop_caches

为什么top和free说我的所有ram都被使用了?

这只是术语上的差异。您和Linux都同意,应用程序占用的内存是USED的,而未用于任何事物的内存是FREED

但是,您如何计算当前用于某事(如磁盘缓存)但仍可用于应用程序的内存呢?

您可能认为该内存为 freeavailable。 Linux而是将其视为used,但也将其视为available

Memory that is You’d call it Linux calls it
used by applications Used Used
used, but can be made available Free (or Available) Used (and Available)
not used for anything Free Free

这个“东西”(大致)是top和free所说的“buffers”和“cached”。由于您和Linux的术语不同,因此您可能会认为自己的内存已经很低了。

我如何查看我实际上有多少FREE的RAM?

我如何查看我实际上有多少免费的RAM?要查看您的应用程序不进行swap操作可以使用多少内存,请运行free -m并查看free列:

  $ free -m
                total        used        free      shared  buff/cache   available
  Mem:           1504        1491          13           0         855      792
  Swap:          2047           6        2041

这个结果的单位是MB。如果您只是天真地看usedfree,您会认为您的ram已满99%,而实际上只有47%!

我什么时候应该开始担心?

运行一段时间后,运行状况良好且内存充足的Linux系统将显示以下预期的无害行为:

  • **可用(free)**内存接近0

  • **已用(used)**内存接近总容量

  • **可用(available)**内存有足够的空间(例如,占总内存的20%以上)

  • 使用的交换内存不会改变

您可能需要研究的真正内存不足情况的警告信号:

  • **可用(available)**内存接近于0
  • 交换内存使用突增或者波动
  • dmesg|grep oom-killer开始工作

我该如何验证这些东西?

有关更多详细信息以及如何尝试磁盘缓存以显示此处描述的效果,请参见此页面。 几乎没有什么比在您自己的硬件上测量数量级加速更能使您欣赏磁盘缓存了!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。