【linux】 swap swappiness相关

       安装过linux系统的同学都知道,linux有个叫swap的分区。可不是每一个人都知道这是干嘛用的。swap分区,顾名思义,就是交换分区的意思。那交换什么?什么时候发生交换呢?


       swap分区其实跟window系统的pagefile.sys功能类似(在C盘根目录下),通常pagefile.sys是隐藏的系统文件,如想查看,可以打开“文件夹选项”,来到查看tab,如下图选上红色框框的即可。


        言归正传,swap交换分区存储的是进程的数据。通常,进程的数据是加载在物理内存的。之所以进程的数据会被换入(swap in,si)和换出(swap out,so)交换分区,很大一部分是因为当前系统性能可能存在瓶颈,通常表现为物理内存吃紧。当系统的物理内存不够用的时候,内核调度算法会将物理内存中的一部分空间释放出来,以供其他需要内存空间的进程使用。那些被释放的空间来自些很长时间都没有什么操作的进程,这些被释放的空间被临时换入swap inswap空间中,等到那些进程需要使用时,再从swap分区数据换出(swap out)到内存中。但这并不是说,系统总是在物理内存不够用时,才会进行进程数据swap的。


        进程数据与swap分区发生数据交换的时间,主要由内核的调度算法决定,其过程比较复杂。至少,需要参考内核参数swappinessswappiness的值是告诉内核,使用swap的概率(或频率),其值取[0,100],值越高表示使用swap的可能性越大,100表示尽可能使用swap,0表示不使用swap。通常swappiness的值默认为60


查看或修改swappiness的方法:

1)查看

cat /proc/sys/vm/swappiness

sysctl -a|grep swappiness

2)修改,swappiness的值可根据系统当前的性能状况适当设置

sysctl vm.swappiness=0或echo 0>/proc/sys/vm/swappiness注意:这种方式系统重启后失效

或 echo "vm.swappiness= 0">>/etc/sysctl.conf                     写入到内核参数配置文件中,即使重启也不会失效

sysctl -p       重新读取内核参数配置文件/etc/sysctl.conf,使最新的配置内核参数生效



另:如系统的物理内存足够用,为提高IO的响应速度,可把swap分区禁用。

swapoff -a

然后修改/etc/fstab,将swap分区的信息注释掉。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值