通过swappiness内核参数调节swap使用

在linux中,可以通过修改swappiness内核参数,降低系统对swap的使用,从而提高系统的性能。

遇到的问题是这样的,新版本产品发布后,每小时对内存的使用会有一个尖峰。虽然这个峰值还远没有到达服务器的物理内存,但确发现内存使用达到峰值时系统开始使用swap。在swap的过程中系统性能会有所下降,表现为较大的服务延迟。对这种情况,可以通过调节swappiness内核参数降低系统对swap的使用,从而避免不必要的swap对性能造成的影响。

简单地说这个参数定义了系统对swap的使用倾向,默认值为60,值越大表示越倾向于使用swap。可以设为0,这样做并不会禁止对swap的使用,只是最大限度地降低了使用swap的可能性。

通过sysctl -q vm.swappiness可以查看参数的当前设置。

修改参数的方法是修改/etc/sysctl.conf文件,加入vm.swappiness=xxx,并重起系统。这个操作相当于是修改虚拟系统中的/proc/sys/vm/swappiness文件,将值改为XXX数值。

如果不想重起,可以通过sysctl -p动态加载/etc/sysctl.conf文件,但建议这样做之前先清空swap。

时间: 2024-11-09 05:06:24

通过swappiness内核参数调节swap使用的相关文章

开源技术分享:Linux 内核参数 swappiness细解

本篇文章主要是就swappiness的一个源码上的解析(基于kernel版本 v4.14-13151-g5a787756b809),仅为个人见解,有不足欢迎相互交流. 关于Swap和swappiness Swap(交换分区)是操作系统就内存不足的一个缓解.当内存紧张时候,会适当的根据一些配置值和当前的统计值进行一次判断,会把一些anon内存(分配出去的内存)交换到Swap分区中. Swappiness是系统的一个参数,可以调节swap的使用优先级.Linux文档描述如下: swappiness

inux IO 内核参数调优 之 参数调节和场景分析

http://backend.blog.163.com/blog/static/2022941262013112081215609/ http://blog.csdn.net/icycode/article/category/5966733 http://blog.sina.cn/dpool/blog/s/blog_b374c0f30102wboi.html 1. pdflush刷新脏数据条件 (linux IO 内核参数调优 之 原理和参数介绍)上一章节讲述了IO内核调优介个重要参数参数. 总

mysql数据库innodb引擎的一个重要内核参数swappiness

在linux内核中有一个叫 swappiness 的参数.可以调整内存的使用方式. 默认情况下,这个数值为60,这意味着内核会比较多的为文件系统提供内存作为缓存,甚至会将一些程序占据的内存交换到swap中以腾出内存. 这正好与使用innodb引擎的mysql数据库有冲突:innodb缓冲池本来就相当于文件系统的缓存,它会缓存住一部分读取过的数据库. 这部分内存通常不会怎么修改变动,所以操作系统就更会倾向于交换出这部分内存到swap中.这样,当mysql真的需要innodb缓冲区中 的数据时,操作

(转)linux IO 内核参数调优 之 参数调节和场景分析

1. pdflush刷新脏数据条件 (linux IO 内核参数调优 之 原理和参数介绍)上一章节讲述了IO内核调优介个重要参数参数. 总结可知cached中的脏数据满足如下几个条件中一个或者多个的时候就会被pdflush刷新到磁盘: (1)数据存在的时间超过了dirty_expire_centisecs(默认30s)时间 (2)脏数据所占内存 /(MemFree + Cached - Mapped) > dirty_background_ratio.也就是说当脏数据所占用的内存占(MemFre

linux内核参数详解

内核参数列表 kernel.acct acct功能用于系统记录进程信息,正常结束的进程都会在该文件尾添加对应的信息.异常结束是指重启或其它致命的系统问题,不能够记录永不停止的进程.该设置需要配置三个值,分别是: 1.如果文件系统可用空间低于这个百分比值,则停止记录进程信息. 2.如果文件系统可用空间高于这个百分比值,则开始记录进程信息. 3.检查上面两个值的频率(以秒为单位). kernel.auto_msgmni 系统自动设置同时运行的消息队列个数. 0:不自动 1:自动 kernel.blk

配置sysctl.conf文件修改内核参数

sysctl.conf文件 linux系统中/proc/sys目录下存放的内核参数,可以在系统运行时进行更改,不过重启机器后配置就会失效. 由于/proc/sys下内核文件与配置文件sysctl.conf中变量存在着对应关系,在/etc/sysctl.conf文件中修改配置内核参数可以实现永久生效,以下是本人整理的常用参数配置 # Controls source route verification net.ipv4.conf.default.rp_filter = 1 net.ipv4.ip_

Mapreduce参数调节

http://blog.javachen.com/2014/06/24/tuning-in-mapreduce/ 本文主要记录Hadoop 2.x版本中MapReduce参数调优,不涉及Yarn的调优. Hadoop的默认配置文件(以cdh5.0.1为例): core-default.xml hdfs-default.xml mapred-default.xml 说明: 在hadoop2中有些参数名称过时了,例如原来的mapred.reduce.tasks改名为mapreduce.job.red

LINUX下ORACLE相关的内核参数详解

ORACLE相关的内核参数详解 1.kernel.sem [[email protected] ~]# cat /proc/sys/kernel/sem 250         32000    100         142 [[email protected] ~]#  ipcs -sl ------ Semaphore Limits -------- max number of arrays = 142 max semaphores per array = 250 max semaphor

Nginx:针对IPv4的内核参数优化

这里提及的参数是和IPv4网络有关的linux内核参数,我们可以将这些内核参数的值追加到linux系统的/etc/sysctl.conf文件中,然后使用如下命令使修改生效: [[email protected] ~]# /sbin/sysctl -p 1.net.core.netdev_max_backlog参数 参数net.core.netdev_max_backlog表示当每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据包的最大数目,一般默认值为128(可能不同的