如何整改Linux内核参数vm.swappiness
发布时间:2023-02-25 11:14:13 所属栏目:Linux 来源:
导读:修改Linux内核参数vm.swappiness
内核参数vm.swappiness控制换出运行时内存的相对权重,参数值大小对如何使用swap分区有很大联系。
值越大,表示越积极使用swap分区,越小表示越积极使用物理内存。
默认值swa
内核参数vm.swappiness控制换出运行时内存的相对权重,参数值大小对如何使用swap分区有很大联系。
值越大,表示越积极使用swap分区,越小表示越积极使用物理内存。
默认值swa
修改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值。 更改值直接影响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 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |