Linux 正在吃掉你的内存吗? 如何管理你的记忆

因此,您安装了 Linux,并承诺它比 Windows 需要更少的系统资源。 那么,为什么您的系统突然内存不足?

不要恐慌! Linux 不会吃掉你的内存。 要了解发生了什么,我们必须看看 Linux 是如何管理内存的。

如何在 Linux 上查看可用 RAM

与 Linux 上的任何东西一样,有多种方法可以检查正在使用的 RAM 量。 如果您来自商业操作系统,您可能会发现打开类似于 Windows 任务管理器或 macOS 活动监视器的应用程序更容易。 该程序的名称取决于您使用的 Linux 桌面环境。

在使用最广泛的选项 GNOME 上,打开一个名为 系统监视器. 在 KDE(一个类似的功能完整的替代方案)上,使用 康索莱 反而。 其他桌面环境有不同名称的类似工具。

对于无论您的桌面环境如何都有效的方法,您可以使用命令行。 打开 终端 应用程序并输入以下命令。

free

您将看到类似这样的结果。 这些数字将根据您的机器有多少 RAM 和活动程序的数量而变化。

要更彻底地查看您的 RAM,请尝试以下操作:

cat /proc/meminfo

上面的命令加载与 自由 命令用于查看您的 PC 上有多少可用内存。

如果您的数字看起来很严峻,那么 Linux 似乎已经吃掉了您的 RAM。 假设您有 4GB 的 RAM,并且正在使用 3.9GB。 其他应用程序似乎只有 0.1GB 是免费的! 看来您只需一个程序就可以让您的 PC 戛然而止。

再看一遍。 这次将目光转向“可用”列。 在那里你可能会发现你实际上有 1GB 的数据对应用程序开放。 但是怎么做? 这一切都归结为 Linux 如何管理和使用 RAM。

Linux 如何使用 RAM

Linux 使用 RAM 的方式与 Windows 和其他操作系统没有太大区别。 但是不同的系统以不同的方式呈现正在发生的事情。

当您的 PC 发现当前没有使用 RAM 时,它会将其中的一些空间专用于磁盘缓存。 通过这种方式,应用程序将数据存储在访问速度更快的位置,从而使系统运行得更快、更流畅。 当其他应用程序需要更多内存时,它们会从磁盘缓存中获取所需的内存量,就好像它处于闲置状态一样。

换句话说,Linux 在休息期间充分利用了这些空白空间。 为什么要浪费所有空闲内存?

要了解这种方式使用了多少空间,请查看“buff/cache”列。 这是您运行命令时专用于缓冲区和高速缓存的 RAM 量。 清除此空间可能有助于提高性能的想法是对 RAM 的常见误解。

免费和可用 RAM 之间的区别

既然大家都赶上了,还是很容易糊涂的。 我明白。 以下是 Linux 如何查看您的 RAM。

  • 用过的: 应用程序当前正在使用的 RAM。
  • 可用的: 可能用于磁盘缓存但可以为应用程序释放的 RAM。
  • 自由: 应用程序或磁盘缓存未使用的 RAM。

免费和可用似乎是同义词,但存在技术差异。 前者是根本不使用的内存。 后者是当前正在使用但可以在需要时轻松打开的内存。 对于日常使用,后者才是真正重要的。

如何清除 RAM 内存缓存和缓冲区

假设,无论出于何种原因,您仍想清除 Linux 内核用于其缓冲区和缓存的 RAM。 需要明确的是,这样做会对性能产生负面影响。 如果您希望您的系统以最佳方式运行,请保持不变。

您将以系统管理员的身份运行这些命令。

要清除页面缓存,请输入以下命令:

echo 1 > /proc/sys/vm/drop_caches

要清除 dentries 和 inode,请将数字更改为 2:

echo 2 > /proc/sys/vm/drop_caches

要一起清除 pagecache、dentries 和 inode,请将数字更改为 3:

echo 3 > /proc/sys/vm/drop_caches

如果这些命令不能提高您的 PC 运行的流畅度,为什么还要运行它们? 这样做是一种在更改后无需重新启动即可比较计算机性能的方法。 如果您没有对您的 PC 进行基准测试或测试,则没有什么理由打扰。

如何查看和关闭程序

这一切是否意味着您不需要在 Linux 上检查 RAM 和管理内存? 不完全的。

虽然 Linux 知道如何优化 RAM,但这并不意味着您的应用程序会这样做。 有时您的浏览器会占用您所有的内存。 游戏可能会在不释放任何系统资源的情况下冻结。 尝试加载超大图片时,图像查看器可能会挂起。

要查看哪些程序给您的计算机带来了困难,请尝试 最佳 命令:

top

结果将如下所示。

既然您已经发现了一个有问题的程序,您能做些什么呢? 一种选择是使用 命令。 为此,请注意输入时出现在程序旁边的 PID 编号 最佳. 你会需要它的。

kill -9 2470

或者,您可以使用 杀死所有 命令 close 使用其名称的程序。

killall firefox

进一步提升 Linux 系统性能

与生活中的许多事情不同,您的 PC 内存或多或少会自行管理。 在这里,我们研究了查看正在发生的事情的方法,并在需要采取措施时介入。您现在知道如何查看正在使用的内存量以及正在使用的程序。 您还可以采取一些步骤来停止占用空间的活动。

但是上面的工具几乎没有 Linux 工具箱中可用的范围。 请参阅我们关于加速慢速 Linux 计算机和更新 Linux 内核以获得更好性能的文章。