返回顶部
首页 > 资讯 > 操作系统 >如何修改Linux内核参数vm.swappiness
  • 406
分享到

如何修改Linux内核参数vm.swappiness

修改Linux内核参数vm.swappinessLinux内核参数 2023-02-10 10:02:06 406人浏览 薄情痞子
摘要

目录修改linux内核参数vm.swappiness调整vm.swappiness的方法了解vm.swappiness使用交换vm.swappiness小结一下吧总结修改Linux内核参数vm.swappiness 内核

目录
  • 修改linux内核参数vm.swappiness
    • 调整vm.swappiness的方法
  • 了解vm.swappiness
    • 使用交换
    • vm.swappiness
    • 小结一下吧
  • 总结

    修改Linux内核参数vm.swappiness

    内核参数vm.swappiness控制换出运行时内存的相对权重,参数值大小对如何使用swap分区有很大联系。

    值越大,表示越积极使用swap分区,越小表示越积极使用物理内存。

    默认值swappiness=60,表示内存使用率超过100-60=40%时开始使用交换分区。

    swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间;swappiness=100的时候表示积极使用swap分区,并把内存上的数据及时搬运到swap空间。(网上有的说,对于3.5以后的内核和RedHat 2.6.32之后的内核,设置为0会禁止使用swap,从而引发out of memory,这种情况可以设置为1。)

    需要根据服务器运行的程序类型,来设置不同的参数值。例如,对于oracle一般设置为10;对于Mysql一般设置为1,尽可能不用swap分区。

    调整vm.swappiness的方法

    1、查看参数值:

    cat /proc/sys/vm/swappiness

    2、临时调整:

    sysctl vm.swappiness = 10
    cat /proc/sys/vm/swappiness

    3、永久调整:

    vi /etc/sysctl.conf

    修改vm.swappiness=10

    然后加载参数:

    sysctl -p

    完毕。

    了解vm.swappiness

    Linux内核是一个相当复杂的软件,具有许多组件,例如模块,接口和配置文件[1]。

    些组件可以配置有特定值,以实现组件[2,3,4]的所需行为或操作模式。随后,此设置将直接影响整个Linux系统的行为和性能。

    Linux内核及其组件的当前值可通过特殊接口/ proc目录[5]进行访问。这是一个虚拟文件系统,其中单个文件实时填充值。这些值表示Linux内核所处的实际状态。

    您可以使用cat命令访问/ proc目录中的各个文件,如下所示:

    $ cat / proc / sys / net / core / somaxconn
    128
    $

    这些内核参数之一称为vm.swappiness。它“控制从运行时内存中交换出来的相对权重,与从系统页面缓存中删除内存页面相反” [6]。从Linux内核2.6版开始,引入了此值。它存储在文件/ proc / sys / vm / swappiness中。

    使用交换

    在1990年代初期,使用swap [6]是使用小型Unix计算机的重要组成部分。当讨厌的内存泄漏干扰您的工作时,它仍然很有用(例如,在您的车辆中装有备用轮胎)。机器将变慢,但在大多数情况下仍可用于完成其分配的任务。自由软件开发人员一直在减少和消除程序错误方面取得了长足的进步,因此在更改内核参数之前,请先考虑将其更新为应用程序和相关库的较新版本。

    如果您运行大量任务,则非活动任务将被换出到磁盘上,从而更好地利用了活动任务中的内存。视频编辑和其他占用大量内存的应用程序通常建议使用一定数量的内存和磁盘空间。如果您有一台无法升级内存的旧机器,那么提供更多的交换空间可能是一个不错的临时解决方案(有关更多信息,请参见[6])。

    交换可以发生在单独的分区或交换文件上。该分区速度更快,并且受到许多数据库应用程序的青睐。文件方法更加灵活(请参阅Debian GNU / Linux中的dphys-swapfile软件包[7])。具有多个用于交换的物理设备允许Linux内核选择最快速可用的设备(较低的延迟)。

    vm.swappiness

    vm.swappiness的默认值为60,它表示激活交换之前可用内存的百分比。值越低,使用的交换越少,并且物理内存中保留的内存页越多。

    60的值是一个折衷方案,非常适合现代台式机系统。建议将较小的值用于服务器系统。正如Red Hat PerfORMance Tuning手册指出的那样[8],对于数据库工作负载,建议使用较小的swappiness值。

    例如,对于Oracle数据库,Red Hat建议将swappiness的值设置为10。相反,对于mariadb数据库,建议将swappiness的值设置为1 [9]。

    更改值直接影响Linux系统的性能。定义了这些值:

    • * 0:禁用交换
    • * 1:不完全禁用交换的最小数量
    • * 10:当系统中有足够内存时为提高性能而推荐的值
    • * 100:主动交换

    如上所示,cat命令有助于读取该值。同样,sysctl命令为您提供相同的结果:

    #sysctl vm.swappiness
    vm.swappiness = 60
    #

    请记住,sysctl命令仅对管理用户可用。要设置该值,请在/ proc文件系统中临时设置该值,如下所示:

    #回声 10 > / PROC / SYS / VM / swappiness

    或者,您可以使用sysctl命令,如下所示:

    #的sysctl -w vm.swappiness = 10

    要永久设置该值,请以管理用户身份打开文件/etc/sysctl.conf并添加以下行:

    vm.swappiness = 10

    小结一下吧

    越来越多的Linux用户正在运行虚拟机。除了实际控制硬件的管理程序外,每个人都有其自己的内核。虚拟机具有为其创建的虚拟磁盘,因此更改虚拟机内部的设置将获得不确定的结果。首先尝试更改虚拟机管理程序内核的值,因为它实际上控制着计算机中的硬件。

    对于不再能够升级的旧计算机(已经具有最大支持的内存),您可以考虑在计算机中放置一个小型固态磁盘,以将其用作其他交换设备。由于存储单元因大量写入而失败,因此这显然将成为一种消耗,但是可以以非常低的成本将机器的寿命延长一年或更长时间。与交换到普通磁盘相比,较低的延迟和快速读取将提供更好的性能,从而为RAM提供中间结果。这应该允许您使用较低的vm.swappiness值以获得最佳性能。您将不得不尝试。SSD设备正在快速变化。

    如果您有多个交换设备,请考虑使其成为RaiD设备以跨可用设备对数据进行条带化。

    您可以在不重启计算机的情况下更改交换性,这是与其他操作系统相比的一大优势。

    尝试仅包括您业务所需的服务。这将减少内存需求,提高性能并简化一切。

    最后一点:您将为交换设备增加负载。您将需要监视它们的温度。过热的系统将降低其CPU频率并降低速度。

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    --结束END--

    本文标题: 如何修改Linux内核参数vm.swappiness

    本文链接: https://lsjlt.com/news/195464.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • 如何修改Linux内核参数vm.swappiness
      目录修改linux内核参数vm.swappiness调整vm.swappiness的方法了解vm.swappiness使用交换vm.swappiness小结一下吧总结修改Linux内核参数vm.swappiness 内核...
      99+
      2023-02-10
      修改Linux内核参数 vm.swappiness Linux内核参数
    • Linux内核模块参数如何修改
      本篇内容主要讲解“Linux内核模块参数如何修改”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux内核模块参数如何修改”吧!内核模块是Linux操作系统中一个比较独特的机制,采用模块化技术...
      99+
      2023-06-27
    • linux中如何修改内核
      今天小编给大家分享一下linux中如何修改内核的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。linux修改内核方法:1、利用...
      99+
      2023-06-29
    • docker镜像内部内核参数怎么修改
      要修改Docker镜像内部的内核参数,可以通过在Dockerfile中使用CMD命令或者在容器中使用sysctl命令来实现。 在D...
      99+
      2024-03-11
      docker
    • Linux常用内核网络参数及修改方法是什么
      本篇文章为大家展示了Linux常用内核网络参数及修改方法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Linux常用内核参数参数描述net.core.rmem_default默认的TCP数据接...
      99+
      2023-06-28
    • linux如何修改系统参数
      这篇文章将为大家详细讲解有关linux如何修改系统参数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。vi /etc/security/limits.confvi /etc...
      99+
      2024-04-02
    • Linux内核参数-共享内存
      kernel.shmall This parameter sets the total amount of shared memory pages that can be used system wide. kernel.shmmax...
      99+
      2018-09-22
      Linux内核参数-共享内存
    • 如何理解Linux内核参数overcommit_memory和OOM killer
      如何理解Linux内核参数overcommit_memory和OOM killer,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是Linux Overcommit和OOMo...
      99+
      2023-06-05
    • Linux系统如何通过grub添加内核参数
      这篇文章给大家介绍Linux系统如何通过grub添加内核参数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Linux内核在启动时我们可以为其提供各种参数来自定义内核的默认行为,内核参数应在内核启动时通过引导装载程序,如...
      99+
      2023-06-28
    • Linux系统中如何修改swappiness参数
      这篇文章主要为大家展示了“Linux系统中如何修改swappiness参数”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux系统中如何修改swappiness参数”这篇文章吧。Linux系...
      99+
      2023-06-27
    • Linux的内核配置怎么修改
      要修改Linux内核配置,您可以使用menuconfig、xconfig、gconfig等工具来与内核配置进行交互。这些工具提供了图...
      99+
      2024-04-02
    • 如何修改redis参数
      修改redis参数的示例:通过redis服务端的终端命令行窗口修改。//修改redis运行参数[root@redis1 utils]# cp /etc/redis/6379.conf /root/6379.conf //可以先备份一份,防止...
      99+
      2024-04-02
    • 如何在CentOS中调整内核参数
      要在CentOS中调整内核参数,您可以按照以下步骤操作: 查看当前内核参数的值: 您可以使用以下命令查看当前系统的内核参数: s...
      99+
      2024-04-02
    • Linux 下安装Oracle 时/etc/sysctl.conf内核参数如何设置
      小编给大家分享一下Linux 下安装Oracle 时/etc/sysctl.conf内核参数如何设置,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在安装Oracle的时候需要调整linux...
      99+
      2024-04-02
    • 如何从TCP/IP协议讨论Linux内核参数优化
      这篇文章给大家介绍如何从TCP/IP协议讨论Linux内核参数优化,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在硬件资源有限的情况下,最大的压榨服务器性能,提高服务器的并发处理能力,是很多技术人员思考的问题,除了优化...
      99+
      2023-06-16
    • linux、aix安装11g内核参数配置
      Linux x86 Kernel Settings kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 6815744 n...
      99+
      2024-04-02
    • Linux怎么进行内核参数优化
      今天小编给大家分享一下Linux怎么进行内核参数优化的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Sysctl命令及linu...
      99+
      2023-06-28
    • Linux中如何优化系统性能和调整内核参数
      使用性能工具:Linux提供了许多性能工具,如top、vmstat、iostat等,可以帮助您监控系统的性能状况,找出性能瓶颈所...
      99+
      2024-04-02
    • Linux安装Oracle内核参数配置说明
      fs.file-max = 6815744    --表示文件句柄的最大数量,表示在Linux系统中可以打开的文件数量。fs.aio-max-nr = 1048576 ...
      99+
      2024-04-02
    • LINUX下ORACLE相关的内核参数详解
      ORACLE相关的内核参数详解1、kernel.sem[root@test ~]# cat /proc/sys/kernel/sem250     &nbs...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作