Redis性能优化问题之为什么配置为 appendfsync everysec 的 AOF 也可能导致 Redis 延迟变大

本文涉及的产品
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 2GB
简介: Redis性能优化问题之为什么配置为 appendfsync everysec 的 AOF 也可能导致 Redis 延迟变大

问题一:内存大页对 Redis 的性能有何影响?


内存大页对 Redis 的性能有何影响?


参考回答:

当 Redis 在执行后台 RDB 并采用 fork 子进程的方式处理时,如果操作系统开启了内存大页,Redis 在写请求导致内存数据拷贝时可能会以 2MB 为单位申请内存,这会增加申请内存的耗时,进而导致每个写请求的延迟增加,影响 Redis 性能。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/639460



问题二:Redis 的 AOF 数据持久化是如何工作的?


Redis 的 AOF 数据持久化是如何工作的?


参考回答:

Redis 的 AOF 数据持久化工作原理是:执行写命令后,先把命令写入到 AOF 文件内存中(write 系统调用),然后根据配置的 AOF 刷盘策略,把 AOF 内存数据刷到磁盘上(fsync 系统调用)。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/639461



问题三:Redis 提供了哪几种 AOF 刷盘机制?


Redis 提供了哪几种 AOF 刷盘机制?


参考回答:

Redis 提供了三种 AOF 刷盘机制:appendfsync always(每次写操作后立即刷盘)、appendfsync no(仅写内存,刷盘时机由操作系统决定)、appendfsync everysec(主线程写内存后返回,后台线程每隔 1 秒执行一次刷盘操作)。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/639462



问题四:为什么配置为 appendfsync everysec 的 AOF 也可能导致 Redis 延迟变大?


为什么配置为 appendfsync everysec 的 AOF 也可能导致 Redis 延迟变大?


参考回答:

配置为 appendfsync everysec 的 AOF 并不能完全避免 Redis 主线程的阻塞。当后台线程执行 fsync 刷盘操作因磁盘 IO 负载过高而被阻塞时,主线程在尝试执行新的 fsync 操作时也会阻塞,从而导致 Redis 性能变慢。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/639463



问题五:什么情况下会导致磁盘 IO 负载过大?


什么情况下会导致磁盘 IO 负载过大?


参考回答:

导致磁盘 IO 负载过大的情况包括:子进程正在执行 AOF rewrite(这会占用大量磁盘 IO 资源),以及有其他应用程序在执行大量的写文件操作。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/639464

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6天前
|
存储 NoSQL Redis
SpringCloud基础7——Redis分布式缓存,RDB,AOF持久化+主从+哨兵+分片集群
Redis持久化、RDB和AOF方案、Redis主从集群、哨兵、分片集群、散列插槽、自动手动故障转移
SpringCloud基础7——Redis分布式缓存,RDB,AOF持久化+主从+哨兵+分片集群
|
26天前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
25天前
|
NoSQL Redis 容器
【Azure Cache for Redis】Redis的导出页面无法配置Storage SAS时通过az cli来完成
【Azure Cache for Redis】Redis的导出页面无法配置Storage SAS时通过az cli来完成
|
26天前
|
缓存 NoSQL 测试技术
【Azure Redis 缓存】Azure Redis 功能性讨论三: 调优参数配置
【Azure Redis 缓存】Azure Redis 功能性讨论三: 调优参数配置
|
29天前
|
NoSQL Redis
Redis AOF重写问题之减少CPU和fork开销如何解决
Redis AOF重写问题之减少CPU和fork开销如何解决
|
22天前
|
监控 NoSQL Redis
Asynchronous AOF fsync is taking too long (disk is busy?). Writing the AOF buffer without waiting for fsync to complete, this may slow down Redis.
Asynchronous AOF fsync is taking too long (disk is busy?). Writing the AOF buffer without waiting for fsync to complete, this may slow down Redis.
|
26天前
|
存储 缓存 NoSQL
【Azure Redis 缓存】由Azure Redis是否可以自定义密码而引申出Azure PaaS的Redis服务是否可以和自建的Redis进行主从配置呢?
【Azure Redis 缓存】由Azure Redis是否可以自定义密码而引申出Azure PaaS的Redis服务是否可以和自建的Redis进行主从配置呢?
|
26天前
|
缓存 NoSQL 网络协议
【Azure Redis 缓存】如何使得Azure Redis可以仅从内网访问? Config 及 Timeout参数配置
【Azure Redis 缓存】如何使得Azure Redis可以仅从内网访问? Config 及 Timeout参数配置
|
28天前
|
缓存 NoSQL 网络协议
【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果
【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果
|
NoSQL Redis
[Redis]Redis指南二 配置
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/73863746 我们可以...
917 0