swap、swappiness 和kswapd0

linux系统每过一定时间就会唤醒kswapd进程,看看内存是否紧张,如果不紧张,则睡眠,在kswapd中,有2个阀值,pages_hige和pages_low,当空闲内存页的数量低于pages_low的时候,kswapd进程就会扫描内存并且每次释放出32个free pages,直到free page的数量到达pages_high.

linux在负载比较大(内存很紧张)的时候一般会看到这样的两个进程kswapd0和kswapd1,如果这个进程占用系统资源很多,尤其是在rac环境会引起系统的宕机,如果这个进程占用资源非常高,那就要考虑优化系统,或添加硬件资源。

Linux 会使用硬盘的一部分做为 Swap 分区,用来进行进程调度–进程是正在运行的程序–把当前不用的进程调成‘等待(standby)’,甚至‘睡眠(sleep)’,一旦要用,再调成‘活动(active)’,睡眠的进程就会在 Swap 分区,把内存空出来让给‘活动’的进程。

如果内存够大,应当告诉 Linux 不必太多的使用 Swap 分区,可以通过修改 swappiness 的参数来设置。swappiness=0 的时候表示最大限度使用物理内存,然后才是 Swap 空间,swappiness=100 的时候表示积极的使用 Swap 分区,并且把内存上的数据及时的搬运到 Swap 空间里面。
在 CentOS 中,swappiness 的默认值是60。
通过以下命令可以看到:

#cat /proc/sys/vm/swappiness
 60

我们可以调整 swappiness 的值到一个合适的参数,从而达到最优化使用 Swap 的目的。这里我们将其设为10。
使用 sysctl 命令:

#sysctl vm.swappiness=10
或者
#echo 0 > /proc/sys/vm/swappiness

但是这只是临时性的修改,在你重启系统后会恢复默认的60,要永久设置,还需要在 vim 中修改sysctl.conf:

#vi /etc/sysctl.conf
在这个文档的最后加上这样一行:
    # Search for the vm.swappiness setting.  Uncomment and change it as necessary.
    vm.swappiness=10

这样一来,Swap 分区重启后都会生效了。

时间: 2024-11-05 20:25:28

swap、swappiness 和kswapd0的相关文章

修改linux swap空间的swappiness,降低对硬盘的缓存

(2010-01-12 17:21:31) 转载▼ 标签: swap swappiness it 分类: Linux linux 会使用硬盘的一部分做为SWAP分区,用来进行进程调度--进程是正在运行的程序--把当前不用的进程调成'等待(standby)',甚至'睡眠(sleep)',一旦要用,再调成'活动(active)',睡眠的进程就躺到SWAP分区睡大觉,把内存空出来让给'活动'的进程. 如果内存够大,应当告诉 linux 不必太多的使用 SWAP 分区, 可以通过修改 swappines

Linux内存机制以及手动释放swap和内存

哇,感觉好久没更新了,今天我们来谈谈Linux的内存机制. 首先我们理一下概念 一.什么是linux的内存机制? 我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念. 物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换

linux swap空间的swappiness=0

linux swap空间的swappiness=0 http://blog.csdn.net/wulantian/article/details/36184943

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

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

centos中设置swap交换空间的大小设置和swappiness的比例设置

首先使用free -m命令查看内存使用情况和swap的大小 关闭swap: 设置swap的大小: bs指的是Block Size,就是每一块的大小.这里的例子是1M,意思就是count的数字,是以1M为单位的. count是告诉程序,新的swapfile要多少个block.这里是1024,就是说,新的swap文件是5G大小. 注意:可能需要点时间完成此步,耐心等待完成. 把增大后的文件变为swap文件: 重新打开swap:  让swap在启动的时候,自动生效.打开/etc/fstab文件,加上以

Linux下设置swappiness参数来配置内存使用到多少才开始使用swap分区(转)

swappiness的值的大小对如何使用swap分区是有着很大的联系的.swappiness=0的时候表示最大限度使用物理内存,然后才是swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面.linux的基本默认设置为60,具体如下: cat /proc/sys/vm/swappiness#60 也就是说,你的内存在使用到100-60=40%的时候,就开始出现有交换分区的使用.大家知道,内存的速度会比磁盘快很多,这样子会加大系统

调整linux内核尽量用内存,而不用swap

线上一台服务器kswapd0占用大量的cpu资源,导致负载过高,什么是kswapd0? Linux uses kswapd for virtual memory management such that pages that havebeen recently accessed are kept in memory and less active pages are paged outto disk. (what is a page?)-Linux uses manages memory in

Swap交换分区--continue

Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存).即使你的程序运行结束后,Cache Memory也不会自动释放.这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存变少.当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap分区中恢复保存的

Linux性能优化实战:系统的swap变高(08)

一.Swap 原理 前面提到,Swap 说白了就是把一块磁盘空间或者一个本地文件(以下讲解以磁盘为例),当成内存来使用.它包括换出和换入两个过程 1.所谓换出 就是把进程暂时不用的内存数据存储到磁盘中,并释放这些数据占用的内存. 2.换入 则是在进程再次访问这些内存的时候,把它们从磁盘读到内存中来 所以你看,Swap 其实是把系统的可用内存变大了.这样,即使服务器的内存不足,也可以运行大内存的应用程序 3.应用场景 即是内存不足时,有些程序也并不像被OOM杀死,二十希望能缓一段时间,等待人工介入