6.查看Redis内存是否发生Swap
$ redis-cli info | grep process_idprocess_id: 5332然后,进入 Redis 所在机器的 /proc 目录下的该进程目录中:
$ cd /proc/5332最后 , 运行下面的命令,查看该 Redis 进程的使用情况 。在这儿,我只截取了部分结果:
$cat smaps | egrep '^(Swap|Size)'Size: 584 kBSwap: 0 kBSize: 4 kBSwap: 4 kBSize: 4 kBSwap: 0 kBSize: 462044 kBSwap: 462008 kBSize: 21392 kBSwap: 0 kB一旦发生内存 swap,最直接的解决方法就是增加机器内存 。如果该实例在一个 Redis 切片集群中,可以增加 Redis 集群的实例个数,来分摊每个实例服务的数据量,进而减少每个实例所需的内存量 。
7.内存大页
如果采用了内存大页,那么 , 即使客户端请求只修改 100B 的数据 , Redis 也需要拷贝 2MB 的大页 。相反,如果是常规内存页机制,只用拷贝 4KB 。两者相比,你可以看到 , 当客户端请求修改或新写入数据较多时,内存大页机制将导致大量的拷贝,这就会影响 Redis 正常的访存操作,最终导致性能变慢 。
首先 , 我们要先排查下内存大页 。方法是:在 Redis 实例运行的机器上执行如下命令:
$ cat /sys/kernel/mm/transparent_hugepage/enabled[always] madvise never如果执行结果是 always,就表明内存大页机制被启动了;如果是 never,就表示,内存大页机制被禁止 。
在实际生产环境中部署时,我建议你不要使用内存大页机制,操作也很简单 , 只需要执行下面的命令就可以了:
echo never /sys/kernel/mm/transparent_hugepage/enabled其实,操作系统提供的内存大页机制,其优势是 , 可以在一定程序上降低应用程序申请内存的次数 。
但是对于 Redis 这种对性能和延迟极其敏感的数据库来说,我们希望 Redis 在每次申请内存时,耗时尽量短,所以我不建议你在 Redis 机器上开启这个机制 。
8.删除使用Lazy Free
支持版本:Redis 4.0+
1)主动删除键使用lazy free
- UNLINK命令
127.0.0.1:7000> LLEN mylist(integer) 2000000127.0.0.1:7000> UNLINK mylist(integer) 1127.0.0.1:7000> SLOWLOG get1) 1) (integer) 12) (integer) 15054651883) (integer) 304) 1) "UNLINK"2) "mylist"5) "127.0.0.1:17015"6) ""注意:DEL命令,还是并发阻塞的删除操作- FLUSHALL/FLUSHDB ASYNC
127.0.0.1:7000> DBSIZE(integer) 1812295127.0.0.1:7000> flushall//同步清理实例数据 , 180万个key耗时1020毫秒OK(1.02s)127.0.0.1:7000> DBSIZE(integer) 1812637127.0.0.1:7000> flushall async//异步清理实例数据,180万个key耗时约9毫秒OK127.0.0.1:7000> SLOWLOG get 1) 1) (integer) 29961092) (integer) 15054659893) (integer) 9274//指令运行耗时9.2毫秒4) 1) "flushall"2) "async"5) "127.0.0.1:20110"6) "" 2)被动删除键使用lazy free
lazy free应用于被动删除中,目前有4种场景 , 每种场景对应一个配置参数;默认都是关闭 。
lazyfree-lazy-eviction nolazyfree-lazy-expire nolazyfree-lazy-server-del noslave-lazy-flush no - lazyfree-lazy-eviction
- lazyfree-lazy-expire
- lazyfree-lazy-server-del
- slave-lazy-flush
3)lazy free的监控
推荐阅读
- 如何构建六层大数据堆栈架构
- Python之Redis操作
- java中如何实现本地缓存?
- 没有门厅如何设计玄关,入户没有玄关可以摆放大绿植
- 教你如何给冰箱除冰 冰箱除冰小技巧
- 如何养育男孩儿
- 相机照片删除了怎么恢复 相机照片删除了如何恢复
- 发黄的衣服如何洗掉 发黄的衣服如何洗
- 如何清除衣服上的口香糖 如何清除衣服上的口香糖污渍
- 三门青蟹如何保存不会死 三门青蟹怎样才能放长时间
