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

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

 

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

 

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

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

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

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

 

诊断内存使用情况

 

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

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

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

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

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

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

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

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

 



修复使用率高的内存

 

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

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

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

 

总结

 

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