操作系统swap对redis的性能的影响以及解决方案

 

目录

  • 一、操作系统SWAP
  • 二、Redis为什么会触发swap
  • 三、查看Redis swap情况
  • 四、解决Redis swap

 

一、操作系统SWAP

swap是操作系统的行为,是指当内存不足时,操作系统将内存的数据拿出一部分放入磁盘,数据从内存和磁盘换入换出的机制,涉及到磁盘的IO。一旦发生swap,内存对应的进程的性能都会受到影响,因为硬盘的访问速度远远小于内存。

redis作为内存数据库,如果redis对应的内存发生了swap,那么redis的性能会受到极大的影响。

二、Redis为什么会触发swap

触发swap的核心原因是机器内存不足,对于redis来说有两个原因会触发swap:

  1. redis自身占用了大量内存,导致机器可用内存不足
  2. redis所在机器其他进程占用内存,导致内存不足。

三、查看Redis swap情况

1、查找redis对应的进程id

 ps -ef|grep redis   

2、进入redis对应的进程目录

cd /proc/16326

 

3、查看swap

cat smaps | egrep '^(Swap|Size)'

上图中size代表redis实例占用的一块内存空间,都有一个对应的Swap,swap的大小代表该内存空间区域有多少已经被换到硬盘了,如果size和swap相等,则代表已经全部被换到了内存空间。

如果出现几百MB设置GB级别的swap时,说明redis的内存压力极大,会变慢,这个时候就需要解决这个问题。

四、解决Redis swap

最直接的办法就是增大redis实例所在机器的内存。

集群部署的redis可以通过增加实例个数,减少每个实例所需要的内存。

另外一个办法就是把redis单独部署,不要和其他应用程序一起部署,这也是比较常规的实践,同时也避免了cpu的竞争。

我们需要对Redis机器的内存和Swap使用情况进行监控,在内存不足和使用到Swap时及时报警出来,及时进行相应的处理。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值