Ubuntu 14.04 陷入停滞 - 发现这个命令并且它似乎有帮助,它是什么?

Ubuntu 14.04 陷入停滞 - 发现这个命令并且它似乎有帮助,它是什么?

正如标题所说,笔记本电脑在一段时间后就停止运行了。我运行了系统监视器,它似乎显示内存使用率越来越高。我四处查看了一下,找到了这个命令:

sudo sysctl -w vm.drop_caches=3

它似乎能阻止我的系统陷入停滞状态。不过有几个问题(我是 Linux 新手):

该命令起什么作用?为什么它似乎有帮助?

答案1

sysctl命令允许您在运行时读取和/或写入内核参数。-w开关表示您希望写入其中一个参数。您可以写入的参数列表作为文件存储在/proc/sys目录树下。

按照ftp://ftp.alaska.edu/pub/sois/man/drop_caches.html,的有效值为drop_caches

0 # default
1 # free pagecache
2 # free dentries, inodes
3 # free pagecache, dentries, inodes

内核文档文件上vm指出写入内容:

写入此内容将导致内核删除干净的缓存以及可回收的 slab 对象(如 dentry 和 inode)。一旦删除,它们的内存就会被释放。

这是一个非破坏性操作,不会释放任何脏对象。为了增加此操作释放的对象数量,用户可以在写入 /proc/sys/vm/drop_caches 之前运行“sync”。这将最大限度地减少系统上的脏对象数量并创建更多要删除的候选对象。

此外,它还发出警告:

使用此文件可能会导致性能问题。由于它会丢弃缓存的对象,因此可能需要大量 I/O 和 CPU 来重新创建丢弃的对象,尤其是在这些对象使用率很高的情况下。因此,不建议在测试或调试环境之外使用。

运行此命令似乎有帮助,因为它可以释放内存。但此命令本身并不能解决您的问题。下次您的系统陷入停滞时,请打开终端并尝试运行该top命令以查看哪些程序在使用您的内存。

相关内容