如何在Linux中清除交换内存 我会带着你远行 2023-10-04 10:59 1阅读 0赞 交换内存通常是一种“设置好后遗忘”的事情。大多数企业环境已在系统中内置了交换功能,并且除非明显存在可用内存不足或者由于OOM杀手(内存不足)错误导致服务器崩溃,否则不会操纵这些内存缓存。但是,在某些情况下,可能会导致管理员需要手动清除系统交换。如果您遇到这种情况,那么您来对地方了。本文讨论了这种情况和所需的解决方案。 有时,即使有可用的RAM,系统也会使用较高百分比的交换内存。罪魁祸首是系统的“混乱”。是的,您没看错……生气。因此,既然您知道了术语,就可以开始研究它的含义了。Swappiness是指内核参数,负责系统将数据从RAM移至交换内存的数量和频率。 默认值为`swappiness`60;默认值为60。但是,您可以手动将其设置为0-100。较小的值几乎不会发生交换,而较高的值会引起非常积极的交换。值为零将导致完全不发生交换,因此,如果要在不关闭交换的情况下将交换最小化到最低值,则应将其设置为至少一个。 如果您想改变系统的可交换性,则该过程非常简单。您可以通过运行以下命令来检查当前的交换设置: $ cat /proc/sys/vm/swappiness 它看起来应该像这样: 图像 ![cat / proc / sys / vm / swapiness的输出][cat _ proc _ sys _ vm _ swapiness] 现在,您可以看到我的系统的`swappiness`值为30。要更改该值,您需要使用以下命令: $ sudo sysctl vm.swappiness=x (where x is the swap value you wish to set) 图像 ![sysctl vm.swappiness = 60的输出][sysctl vm.swappiness _ 60] 要验证您设置的值,只需对`swappiness`您之前查看的文件进行分类以找出原始值。轻松的一天。既然您了解了控制我们系统上交换行为的基本参数,那么您将准备学习在出现这种情况时如何清除该内存。这是您终端生活中的第一次,这里的事情将变得很容易。 要清除系统上的交换内存,您只需要循环掉交换即可。这会将所有数据从交换内存移回RAM。这也意味着您需要确保您有RAM来支持此操作。一种简单的方法是运行'free -m'来查看交换和RAM中正在使用的内容。关闭电源后,您可以等待任意时间(约30秒)以完成操作时间,然后重新打开交换器电源。这将清除交换内存缓存并重新启用它。这是您需要的所有命令! Check space: # free -m Disable swap: # swapoff -a Wait approx 30 sec (use free -m to see the amount of swap used/available decrease over time) Enable swap: # swapon -a 希望,如果您发现自己需要这种修复,此快速提示可以帮助您清除系统交换内存。 有关交换空间的更多信息,请参阅我的文章,[此处][Link 1]概述了基础知识。 [cat _ proc _ sys _ vm _ swapiness]: https://img-blog.csdnimg.cn/img_convert/c437fc42fda40d05eb5575bb66fad3d3.png [sysctl vm.swappiness _ 60]: https://img-blog.csdnimg.cn/img_convert/04a448fee3e7df861a1b0341304f1037.png [Link 1]: https://www.redhat.com/sysadmin/managing-swap
还没有评论,来说两句吧...