Linux下如何解决高内存使用率问题?

加个“星标”,每天下午18:03,一起学技术

随着科技工业的进步,我们的电脑比以前拥有更多的内存了,但是你发现没有,不管你的电脑有多少内存,似乎永远都不够用。

大多数的时候,我们可以把你的计算机或服务器中的所有内存都打包,里面总有一些可以用的东西。但是,如果不使用它,那么这些的打包内存又有什么意义呢?反而如果你的内存有限,当出现内存不足情况将会让你奔溃。

你能确定你的内存使用量吗?

在开始寻找释放内存的方法之前,要确定电脑中哪些软件在占用内存, Linux 系统处理内存的方式就是释放正在运行的内存。

正如上表所示,显示内存不足的top命令可能并不意味着什么。默认情况下,Linux 系统会留出未使用的内存用于磁盘缓存,这实际上有助于加快计算机运行速度。

也就是说,可能有一些服务或应用程序实际占用的内存比它们应该使用的反而要多。

诊断内存使用情况

要诊断内存,需要使用几个不同的命令。**top **命令很适合用于查看占用太多内存的应用程序。也可以使用freeps命令来帮助诊断任何内存问题。要使用free命令,请运行以下命令:

你会注意到totalused行的数字是相似的,这是Linux系统的正常反应,不必担心。最重要的是要注意buffers/cached行中的used部分,因为这是应用程序和服务实际使用的内容。

还可以使用类似于top命令的ps命令来确定哪些应用程序使用的内存最多,只需运行以下命令:

输入这个命令将显示哪些应用程序使用的内存最多,并显示它们的进程ID。

修复使用率高的内存

在 Linux 系统中,内存使用率高有几个常见的因素,其中一个主要的是 Java。当你运行环境时,无论使用的是正版的 Java 还是 GNU 提供的可替代的,你会发现这都会给你带来内存使用率过高的麻烦。如果你在服务器上遇到这种情况,可能是由 JBoss 或 Tomcat 引起的,你可在如下位置找到它们的配置文件:

其他因素可能是 Apache 或 MySQL 数据库,由于他们超出了本文的范围,所以无法向你确切地展示如何配置这些服务。不过你可以检查日志文件中是否有来自这些服务的错误或警告。

总结

如果您正在寻找性能提升或修复问题的办法,记住:可能并不总是由内存不足引起的,这取决于你寻找的是什么方法。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201122A00PIM00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券