细说Redis监控和告警

Prometheus运维十一 监控Redis 帮助文档:http://www.eryajf.net/2497.html prometheus监控redis需要用到redis_exporter。 redis_exporter 项目地址:https://github.com/oliver006/redis_exporter 阅读详情

文章系转载,便于整理和归类,原文地址:https://blog.youkuaiyun.com/sD7O95O/article/details/78096956

对于任何应用服务和组件,都需要一套完善可靠谱监控方案。
尤其redis这类敏感的纯内存、高并发和低延时的服务,一套完善的监控告警方案,是精细化运营的前提。
本文分几节,细说Redis的监控和告警:
1.Redis监控告警的价值
2.Redis监控的数据采集
3.Redis告警策略
4.基于Open Falcon的Redis监控告警方案


一、Redis监控告警的价值

Redis监控告警的价值对每个角色都不同,重要的几个方面:

  • redis故障快速通知,定位故障点;对于DBA,redis的可用性和性能故障需快速发现和定位解决。
  • 分析redis故障的Root cause
  • redis容量规划和性能管理
  • redis硬件资源利用率和成本

1. redis故障快速发现,定位故障点和解决故障

当redis出现故障时,DBA应在尽可能短时间内发现告警;如果故障对服务是有损的(如大面积网络故障或程序BUG),需立即通知SRE和RD启用故障预案(如切换机房或启用emergency switch)止损。
如果没完善监控告警;假设由RD发现服务故障,再排查整体服务调用链去定位;甚于用户发现用问题,通过客服投诉,再排查到redis故障的问题;整个redis故障的发现、定位和解决时间被拉长,把一个原本的小故障被”无限”放大。

2. 分析redis故障的Root cause

任何一个故障和性能问题,其根本“诱因”往往只有一个,称为这个故障的Root cause。
一个故障从DBA发现、止损、分析定位、解决和以后规避措施;最重要一环就是DBA通过各种问题表象,层层分析到Root cause;找到问题的根据原因,才能根治这类问题,避免再次发生。
完善的redis监控数据,是我们分析root cause的基础和证据。

备注:Troubleshtooing定位Root cause,就像医生通过病人的病历和检查报告找到“真正的病灶”,让病人康复和少受苦,一样有意思和复杂;或像刑警通过案件的证据分析和推理,寻找那个唯一的真相,一样惊心动魄。(快看DBA又在吹牛了),其实在大型商业系统中,一次故障轻松就达直接损失数十万(间接损失更大),那“抓住元凶”,避免它再次“作案”,同样是“破案”。

问题表现是综合情的,一般可能性较复杂,这里举2个例子:

  • 服务调用Redis响应时间变大的性能总是;可能网络问题,redis慢查询,redis QPS增高达到性能瓶颈,redis fork阻塞和请求排队,redis使用swap, cpu达到饱和(单核idle过低),aof fsync阻塞,网络进出口资源饱和等等
  • redis使用内存突然增长,快达到maxmemory; 可能其个大键写入,键个数增长,某类键平均长度突增,fork COW, 客户端输入/输出缓冲区,lua程序占用等等

Root cause是要直观的监控数据和证据,而非有技术支撑的推理分析。

  • redis响应抖动,分析定位root casue是bgsave时fork导致阻塞200ms的例子。而不是分析推理:redis进程rss达30gb,响应抖动时应该有同步,fork子进程时,页表拷贝时要阻塞父进程,估计页表大小xx,再根据内存copy连续1m数据要xx 纳秒,分析出可能fork阻塞导致的。(要的不是这种分析)

    说明:粮厂有个习惯,在分析root cause尽量能拿到直观证据。因为一旦引入推理步骤,每一步的推理结果都可能出现偏差,最终可能给出错误root cause. “元凶”又逃过一劫,它下次作案估计就会更大。所以建议任何小的故障或抖动,至少从个人或小组内部,深入分析找到root cause;这样个人或组织都会成长快; 形成良好的氛围。

3. Redis容量规划和性能管理

通过分析redis资源使用和性能指标的监控历史趋势数据;对集群进行合理扩容(Scale-out)、缩容(Scale-back);对性能瓶颈优化处理等。
Redis资源使用饱和度监控,设置合理阀值;
一些常用容量指标:redis内存使用比例,swap使用,cpu单核的饱和度等;当资源使用容量预警时,能及时扩容,避免因资源使用过载,导致故障。
另一方面,如果资源利用率持续过低,及时通知业务,并进行redis集群缩容处理,避免资源浪费。
进一步,容器化管理redis后,根据监控数据,系统能自动地弹性扩容和缩容。

Redis性能监控管理,及时发现性能瓶颈,进行优化或扩容,把问题扼杀在”萌芽期“,避免它”进化“成故障。

4. Redis硬件资源利用率和成本

从老板角度来看,最关心的是成本和资源利用率是否达标。
如果资源不达标,就得推进资源优化整合;提高硬件利用率,减少资源浪费。砍预算,减成本。
资源利用率是否达标的数据,都是通过监控系统采集的数据。

这一小节,扯了这么多; 只是强调redis不是只有一个端口存活监控就可以了。
下面进入主题,怎么采集redsis监控数。

老板曾说:监控告警和数据备份,是对DBA和SRE最基础也是最高的要求;
当服务和存储达到产品规模后,可认为“无监控,不服务;无备份,不存储”。

二、Redis监控数据采集

redis监控的数据采集,数据采集1分钟一次,分为下面几个方面:

  • 服务器系统数据采集
  • Redis Server数据采集
  • Redis响应时间数据采集
  • Redis监控Screen

1. 服务器系统监控数据采集

服务器系统的数据采集,这部分包含数百个指标. 采集方式现在监控平台自带的agent都会支持
如Zabbix和Open Falcon等,这里就不介绍采集方法。

我们从redis使用资源的特性,分析各个子系统的重要监控指标。

1)服务器存活监控
  • ping监控告警
2)CPU
  • 平均负载(Load Average): 综合负载指标(暂且归类cpu子系统),当系统的子系统出现过度使用时,平均负载会升高。可说明redis的处理性能下降(平均响应时间变长、吞吐量降低)。
  • CPU整体利用率或饱和度(cpu.busy): redis在高并发或时间复杂度高的指令,cpu整体资源饱和,导致redis性能下降,请求堆积。
  • CPU单核饱和度(cpu.core.idle/core=0): redis是单进程模式,常规情况只使用一个cpu core, 单某个实例出现cpu性能瓶颈,导致性能故障,但系统一般24线程的cpu饱和度却很低。所以监控cpu单核心利用率也同样重样。
  • CPU上下文切换数(cpu.switches):context swith过高xxxxxx
3)内存和swap
  • 系统内存余量大小(mem.memfree):redis是纯内存系统,系统内存必须保有足够余量,避免出现OOM,导致redis进程被杀,或使用swap导致redis性能骤降。
  • 系统swap使用量大小(mem.swapused):redis的”热数据“只要进入swap,redis处理性能就会骤降; 不管swap分区的是否是SSD介质。OS对swap的使用材质还是disk store. 这也是作者早期redis实现VM,后来又放弃的原因。

说明:系统内存余量合理,给各种缓冲区,fork cow足够的内存空间。
另一个问题:我的系统使用Redis缓存集群,”不怕挂,就怕慢“,或redis集群高可用做得厉害;这样redis的服务器是否能关闭swap呢?

4)磁盘
  • 磁盘分区的使用率(df.bytes.used.percent):磁盘空间使用率监控告警,确保有足磁盘空间用AOF/RDB, 日志文件存储。不过 redis服务器一般很少出现磁盘容量问题
  • 磁盘IOPS的饱和度(disk.io.util):如果有AOF持久化时,要注意这类情况。如果AOF持久化,每秒sync有堆积,可能导致写入stall的情况。 另外磁盘顺序吞吐量还是很重要,太低会导致复制同步RDB时,拉长同步RDB时间。(期待diskless replication)
5)网络
  • 网络吞吐量饱和度(net.if.out.bytes/net.if.in.bytes):如果服务器是千兆网卡(Speed: 1000Mb/s),单机多实例情况,有异常的大key容量导致网卡流量打滿。redis整体服务等量下降,苦于出现故障切换。
  • 丢包率:Redis服务响应质量受影响

2. Redis Server监控数据采集

通过redis实例的状态数据采集,采集监控数据的命令
ping,info all, slowlog get/len/reset/cluster info/config get

1)Redis存活监控
  • redis存活监控(redis_alive):redis本地监控agent使用ping,如果指定时间返回PONG表示存活,否则redis不能响应请求,可能阻塞或死亡。
  • redis uptime监控(redis_uptime):uptime_in_seconds
2)Redis 连接数监控
  • 连接个数(connected_clients):客户端连接个数,如果连接数过高,影响redis吞吐量。常规建议不要超过5000.参考官方benchmarks

  • 连接数使用率(connected_clients_pct): 连接数使用百分比,通过(connected_clients/macclients)计算;如果达到1,redis开始拒绝新连接创建。

    127.0.0.1:6380> set mykey myvalue(error) ERR max number of clients reached127.0.0.1:6380>
    
  • 拒绝的连接个数(rejected_connections): redis连接个数达到maxclients限制,拒绝新连接的个数。

  • 新创建连接个数(total_connections_received): 如果新创建连接过多,过度地创建和销毁连接对性能有影响,说明短连接严重或连接池使用有问题,需调研代码的连接设置。

  • list阻塞调用被阻塞的连接个数(blocked_clients): BLPOP这类命令没使用过,如果监控数据大于0,还是建议排查原因。

3)Redis内存监控
  • redis分配的内存大小(used_memory): redis真实使用内存,不包含内存碎片;单实例的内存大小不建议过大,常规10~20GB以内。

  • redis内存使用比例(used_memory_pct): 已分配内存的百分比,通过(used_memory/maxmemory)计算;对于redis存储场景会比较关注,未设置淘汰策略(maxmemory_policy)的,达到maxmemory限制不能写入数据。

    127.0.0.1:6380> set mykey myvalue(error) OOM command not allowed when used memory > 'maxmemory'.127.0.0.1:6380>
    
  • redis进程使用内存大小(used_memory_rss): 进程实际使用的物理内存大小,包含内存碎片;如果rss过大导致内部碎片大,内存资源浪费,和fork的耗时和cow内存都会增大。

  • redis内存碎片率(mem_fragmentation_ratio): 表示(used_memory_rss/used_memory),碎片率过大,导致内存资源浪费;

    说明:
    1、如果内存使用很小时,mem_fragmentation_ratio可以远大于1的情况,这个告警值不好设置,需参考used_memory大小。
    2、如果mem_fragmentation_ratio小于1,表示redis已使用swap分区

4)Redis综合性能监控
Redis Keyspace

redis键空间的状态监控

  • 键个数(keys): redis实例包含的键个数。建议控制在1kw内;单实例键个数过大,可能导致过期键的回收不及时。
  • 设置有生存时间的键个数(keys_expires): 是纯缓存或业务的过期长,都建议对键设置TTL; 避免业务的死键问题. (expires字段)
  • 估算设置生存时间键的平均寿命(avg_ttl): redis会抽样估算实例中设置TTL键的平均时长,单位毫秒。如果无TTL键或在Slave则avg_ttl一直为0
  • LRU淘汰的键个数(evicted_keys): 因used_memory达到maxmemory限制,并设置有淘汰策略的实例;(对排查问题重要,可不设置告警)
  • 过期淘汰的键个数(expired_keys): 删除生存时间为0的键个数;包含主动删除和定期删除的个数。
Redis qps
  • redis处理的命令数(total_commands_processed): 监控采集周期内的平均qps,
    redis单实例处理达数万,如果请求数过多,redis过载导致请求堆积。
  • redis当前的qps(instantaneous_ops_per_sec): redis内部较实时的每秒执行的命令数;可和total_commands_processed监控互补。
Redis cmdstat_xxx

这小节讲解,redis记录执行过的所有命令; 通过info all的Commandstats节采集数据.

  • 每类命令执行的次数(cmdstat_xxx): 这个值用于分析redis抖动变化比较有用

以下表示:每个命令执行次数,总共消耗的CPU时长(单个微秒),平均每次消耗的CPU时长(单位微秒)

# Commandstatscmdstat_set:calls=6,usec=37,usec_per_call=6.17cmdstat_lpush:calls=4,usec=32,usec_per_call=8.00cmdstat_lpop:calls=4,usec=33,usec_per_call=8.25
Redis Keysapce hit ratio

redis键空间请求命中率监控,通过此监控来度量redis缓存的质量,如果未命中率或次数较高,可能因热点数据已大于redis的内存限制,导致请求落到后端存储组件,可能需要扩容redis缓存集群的内存容量。当然也有可能是业务特性导致。

  • 请求键被命中次数(keyspace_hits): redis请求键被命中的次数
  • 请求键未被命中次数(keyspace_misses): redis请求键未被命中的次数;当命中率较高如95%,如果请求量大,未命中次数也会很多。可参考Baron大神写的Why you should ignore MySQL’s key cache hit ratio
  • 请求键的命中率(keyspace_hit_ratio):使用keyspace_hits/(keyspace_hits+keyspace_misses)计算所得,是度量Redis缓存服务质量的标准
Redis fork

redis在执行BGSAVE,BGREWRITEAOF命令时,redis进程有fork操作。而fork会对redis进程有个短暂的卡顿,这个卡顿redis不能响应任务请求。所以监控fork阻塞时长,是相当重要。
如果你的系统不能接受redis有500ms的阻塞,那么就要监控fork阻塞时长的变化,做好容量规划。

  • 最近一次fork阻塞的微秒数(latest_fork_usec): 最近一次Fork操作阻塞redis进程的耗时数,单位微秒。
redis network traffic

redis一般单机多实例部署,当服务器网络流量增长很大,需快速定位是网络流量被哪个redis实例所消耗了; 另外redis如果写流量过大,可能导致slave线程“客户端输出缓冲区”堆积,达到限制后被Maser强制断开连接,出现复制中断故障。所以我们需监控每个redis实例网络进出口流量,设置合适的告警值。

说明:网络监控指标 ,需较高的版本才有,应该是2.8.2x以后

  • redis网络入口流量字节数(total_net_input_bytes)
  • redis网络出口流量字节数(total_net_output_bytes)
  • redis网络入口kps(instantaneous_input_kbps)
  • redis网络出口kps(instantaneous_output_kbps)

前两者是累计值,根据监控平台1个采集周期(如1分钟)内平均每秒的流量字节数。

5)Redis慢查询监控

redis慢查询是排查性能问题关键监控指标。因redis是单线程模型(single-threaded server),即一次只能执行一个命令,如果命令耗时较长,其他命令就会被阻塞,进入队列排队等待;这样对程序性能会较大。
redis慢查询保存在内存中,最多保存slowlog-max-len(默认128)个慢查询命令,当慢查询命令日志达到128个时,新慢查询被加入前,会删除最旧的慢查询命令。因慢查询不能持久化保存,且不能实时监控每秒产生的慢查询个数。
我们建议的慢查询监控方法:

  1. 设置合理慢查询日志阀值,slowlog-log-slower-than, 建议1ms(如果平均1ms, redis qps也就只有1000)
  2. 设置全理慢查询日志队列长度,slowlog-max-len建议大于1024个,因监控采集周期1分钟,建议,避免慢查询日志被删除;另外慢查询的参数过多时,会被省略,对内存消耗很小
  3. 每次采集使用slowlog len获取慢查询日志个数
  4. 每次彩集使用slowlog get 1024 获取所慢查询,并转存储到其他地方,如MongoDB或MySQL等,方便排查问题;并分析当前慢查询日志最长耗时微秒数。
  5. 然后使用slowlog reset把慢查询日志清空,下个采集周期的日志长度就是最新产生的。

redis慢查询的监控项:

  • redis慢查询日志个数(slowlog_len):每个采集周期出现慢查询个数,如1分钟出现10次大于1ms的慢查询
  • redis慢查询日志最长耗时值(slowlog_max_time):获取慢查询耗时最长值,因有的达10秒以下的慢查询,可能导致复制中断,甚至出来主从切换等故障。
6)Redis持久化监控

redis存储场景的集群,就得redis持久化保障数据落地,减少故障时数据丢失。这里分析redis rdb数据持久化的几个监控指标。

  • 最近一次rdb持久化是否成功(rdb_last_bgsave_status):如果持久化未成功,建议告警,说明备份或主从复制同步不正常。或redis设置有”stop-writes-on-bgsave-error”为yes,当save失败后,会导致redis不能写入操作
  • 最近一次成功生成rdb文件耗时秒数(rdb_last_bgsave_time_sec):rdb生成耗时反应同步时数据是否增长; 如果远程备份使用redis-cli –rdb方式远程备份rdb文件,时间长短可能影响备份线程客户端输出缓冲内存使用大小。
  • 离最近一次成功生成rdb文件,写入命令的个数(rdb_changes_since_last_save):即有多少个写入命令没有持久化,最坏情况下会丢失的写入命令数。建议设置监控告警
  • 离最近一次成功rdb持久化的秒数(rdb_last_save_time): 最坏情况丢失多少秒的数据写入。使用当前时间戳 - 采集的rdb_last_save_time(最近一次rdb成功持久化的时间戳),计算出多少秒未成功生成rdb文件
7)Redis复制监控

不论使用何种redis集群方案,redis复制都会被使用。

复制相关的监控告警项:

  • redis角色(redis_role):实例的角色,是master or slave

  • 复制连接状态(master_link_status): slave端可查看它与master之间同步状态;当复制断开后表示down,影响当前集群的可用性。需设置监控告警。

  • 复制连接断开时间长度(master_link_down_since_seconds):主从服务器同步断开的秒数,建议设置时长告警。

  • 主库多少秒未发送数据到从库(master_last_io_seconds):如果主库超过repl-timeout秒未向从库发送命令和数据,会导致复制断开重连。详细分析见文章:Redis复制中断和无限同步问题。 在slave端可监控,建议设置大于10秒告警

  • 从库多少秒未向主库发送REPLCONF命令(slave_lag): 正常情况从库每秒都向主库,发送REPLCONF ACK命令;如果从库因某种原因,未向主库上报命令,主从复制有中断的风险。通过在master端监控每个slave的lag值。

  • 从库是否设置只读(slave_read_only):从库默认只读禁止写入操作,监控从库只读状态;
    如果关闭从库只读,有写入数据风险。关于主从数据不一致,见文章分析: Redis复制主从数据不-致

  • 主库挂载的从库个数(connected_slaves):主库至少保证一个从库,不建议设置超过2个从库。

  • 复制积压缓冲区是否开启(repl_backlog_active):主库默认开启复制积压缓冲区,用于应对短时间复制中断时,使用部分同步方式。

  • 复制积压缓冲大小(repl_backlog_size):主库复制积压缓冲大小默认1MB,因为是redis server共享一个缓冲区,建议设置100MB.

    说明: 关于根据实际情况,设置合适大小的复制缓冲区。可以通过master_repl_offset指标计算每秒写入字节数,同时乘以希望多少秒内闪断使用“部分同步”方式。

8)Redis集群监控

这里所写redis官方集群方案的监控指标
数据基本通过cluster info和info命令采集。

  • 实例是否启用集群模式(cluster_enabled): 通过info的cluster_enabled监控是否启用集群模式。
  • 集群健康状态(clusster_state):如果当前redis发现有failed的slots,默认为把自己cluster_state从ok个性为fail, 写入命令会失败。如果设置cluster-require-full-coverage为NO,则无此限制。
  • 集群数据槽slots分配情况(cluster_slots_assigned):集群正常运行时,默认16384个slots
  • 检测下线的数据槽slots个数(cluster_slots_fail):集群正常运行时,应该为0. 如果大于0说明集群有slot存在故障。
  • 集群的分片数(cluster_size):集群中设置的分片个数
  • 集群的节点数(cluster_known_nodes):集群中redis节点的个数

3. Redis响应时间监控

响应时间是衡量一个服务组件性能和质量的重要指标。使用redis的服务通常对响应时间都十分敏感,比如要求99%的响应时间达10ms以内。
因redis的慢查询日志只计算命令的cpu占用时间,不会考虑排队或其他耗时。

  • 最长响应时间(respond_time_max):最长响应时间的毫秒数
  • 99%的响应时间长度(respond_time_99_max):
  • 99%的平均响应时间长度(respond_time_99_avg):
  • 95%的响应时间长度(respond_time_95_max):
  • 95%的平均响应时间长度(respond_time_95_avg):

响应时间监控的方式建议,最简单方法,使用Percona tcprstat

SpringBoot:监控Redis中的某个Key的变化(自定义监听器) 1.声明 当前内容主要为本人学习和基本测试,主要为监控redis中的某个key的变化(感觉网上的都不好,所以自己看Spring源码直接写一个监听器) 个人参考: Redis官方文档 Spring-data-Redis源码 2.基本理念 网上的demo的缺点 使用继承KeyExpirationEventMessageListener只能监听当前key消失的事件 使用KeyspaceEventMessageListener只能监听所有的key事件 总体来说,不能监听某个特定的key的变化(某个特定的re 阅读详情

相关推荐

Redis_缓存预热、缓存雪崩、缓存击穿、缓存穿透、性能指标监控

文章目录缓存预热应对场景问题排查解决方案前置准备工作准备工作实施缓存雪崩数据库服务器崩溃问题排查解决方案(道)解决方案(术)缓存击穿数据库服务器崩溃问题排查解决方案(术)缓存穿透数据库服务器崩溃问题排查问题分析解决方案(术)性能指标监控监控指标监控工具监控命令benchmarkmonitorshowlong 缓存预热 缓存预热就是系统启动前,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的...

Chill Lyn 2322

redis5.0 有key未命中事件_如何提高及优化 redis 缓存命中率

引子: 1、命中率的概念: 客户端获取缓存数据的时候会出现命中率问题,那么命中率是什么那,通俗点说, 命中 (hit)就是查询到了缓存结果,没有命中(miss)就是没有查询到缓存结果。 用 命中 (hit)数量除( hit 加 没有命中miss 的 总数),得出的就是命中率。 公式如下:hits /( hits + miss)= 命中率 % 。 2、在redis 如何查看命中率那? 我们可以使用redis-cli 连接服务端后,执行 info 命令查看。 127.0.0.1:6379> info 返回

NBA_1的博客 3649

【Prometheus】如何通过prometheus监控redis实时运行状态,并实现告警通知

在现代微服务架构中,Redis被广泛应用于缓存、消息队列及其他场景。为了确保Redis集群的高可用性和性能,我们需要实时监控其状态与指标。本文将全面讲解如何通过prometheus监控redis运行的各项指标,让数据实时可知。

景天科技苑 6万+

Redis由浅入深详细解析(二)

事务 redis事务就是一个命令执行的队列,将一系列预定义命令包装成一个整体(一个队列)。当执行时,一次性按照添加顺序依次执行,中间不会被打断或者干扰; 事务的基本操作 1、开启事务 命令:multi 作用:设定事务的开启位置,此指令执行后,后续的所有指令均加入到事务中; 2、执行事务 命令:exec 作用:设定事务的结束位置,同时执行事务。与multi成对出现,成对使用; 3、取消事务 命令:discard 作用:终止当前事务的定义,发生在multi之后,exec之前; 事务的注意事项 1、加入事务的命

逝去的往事的博客 944

Pywinauto与Inspect.exe完美搭配:解决Windows应用UI自动化中的元素定位难题

本文详细介绍了如何将Pywinauto与Inspect.exe结合,以解决Windows应用UI自动化中的核心难题——元素定位。通过实战指南,阐述了如何利用Inspect.exe在UIA模式下精准侦察控件属性,并将这些信息转化为Pywinauto的稳健定位策略,从而高效自动化WPF、WinForms等现代框架构建的复杂桌面应用。

weixin_29297127的博客 520

分享一下使用Xilinx FPGA驱动MIPI DSI LCD屏的心路历程

分享一下调试用Xilinx FPGA驱动MIPI DSI LCD屏的心路历程,看到的朋友们,可以避免继续踩坑。

haoxingheng的专栏 5014

[转]细说Redis监控和告警

原文https://zhuoroger.github.io/2016/08/20/redis-monitor-and-alarm/? 对于任何应用服务和组件,都需要一套完善可靠谱监控方案。 尤其redis这类敏感的纯内存、高并发和低延时的服务,一套完善的监控告警方案,是精细化运营的前提。 本文分几节,细说Redis的监控和告警: 1.Redis监控告警的价值 2.Redis监控...

weixin_30344795的博客 158

MATLAB 2022b 用户专属:保姆级IPOPT求解器安装配置全流程(含OPTI工具箱)

本文为MATLAB 2022b用户提供IPOPT求解器的详细安装与配置指南,涵盖OPTI工具箱的适配安装、环境变量设置及常见问题解决方案。通过实战案例演示非线性优化问题的求解过程,帮助用户高效部署这一强大的优化工具,提升工程计算效率。

weixin_29092031的博客 405

redis状态与性能监控

1、redis-benchmark  redis基准信息,redis服务器性能检测 redis-benchmark -h localhost -p 6379 -c 100 -n 100000  100个并发连接,100000个请求,检测host为localhost 端口为6379的redis服务器性能    2、redis-cli redis-cli -h localhost -p 6

tspangle的专栏 3902

01-嵌入式入门-如何看原理图

最近由于找到的工作是偏于嵌入式方向,因此又重新开始学习已经丢弃两年的知识。新手学习知识感觉有一个通病:喜欢收集各种各样的视频、资料,网盘里收藏一大堆,但是却从没有打开看过,到头来还是个小白,只听说过几个概念,而实际却是不知所云,这就是所谓的"学习综合征"。而我也是其中的一员,最近痛定思痛,就准备根据一套资料沉下心学习下去,不再进入收集资料的大军。...

weixin_34010566的博客 4484

常说的cache机制到底是什么?L1 cache和 L2 cache是什么?

一文带你迅速了解CPU内的cache机制!!图解多核CPU中的多级cache结构。为何有的处理器没有cache?

车载系统攻城狮 5878

Redis监控和告警

对于任何应用服务和组件,都需要一套完善可靠谱监控方案。 尤其redis这类敏感的纯内存、高并发和低延时的服务,一套完善的监控告警方案,是精细化运营的前提。 本文分几节,细说Redis的监控和告警: 1.Redis监控告警的价值 2.Redis监控的数据采集 3.Redis告警策略 4.基于Open Falcon的Redis监控告警方案 Redis监控告警的

李晓蒙的博客 8167

uniapp [全端兼容] - 实现省市区选择器三四级联动组件,uniapp选择地址自定义省市区三级联动插件,弹框式多级联动选择器区域选择(全平台兼容苹果安卓App、支付宝微信小程序、移动端H5网页)

uni-app省市区选择器,省市区街道三级四级联动选择器,uniapp自定义多列选择器省市两级联动,uniapp picker组件实现多级联动,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,uniApp选择器省市区县街道乡镇,uniapp实现省市区选择联动,uniapp城市三级联动(自定义组件)_uniapp三级联动,picker插件省市区联动,uniapp小程序省市区选择器,uni-app 省市区街道的四级联动选择,uniapp怎样实现省市区地址三级联动uni

🏆 前端领域优质创作者 1万+

Redis最佳实践——性能优化技巧之监控与告警详解

Redis最佳实践——性能优化技巧之监控与告警详解

专注分享技术、实用优质教程、资源 6451

游戏大厂状态同步与帧同步技术全解析——让虚拟世界万物协同的“时间齿轮”

本文深入解析了大厂游戏开发中的两种核心同步技术:状态同步和帧同步。状态同步适合大型MMO和FPS游戏,由服务端计算并广播世界状态;帧同步则通过统一操作输入实现MOBA和RTS游戏的绝对公平。文章详细比较了两者的差异、适用场景和底层实现原理,并揭秘了《王者荣耀》《PUBG》等热门游戏的同步机制。同时探讨了本地预测、延迟补偿、防作弊等关键技术,以及未来AI和云游戏带来的同步新挑战,为开发者提供了全面的技术参考和实践指南。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 920

华为OD机试真题新系统-空间占用计算(Py/Java/C/C++/Js/Go)

华为OD机试新系统机试真题 【空间占用计算】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【空间占用计算】。

qq_45776114的博客 3443

Redis100篇 - Redis运维必备 常用监控指标+告警阈值设置

Redis 监控指标与告警设置指南 摘要: Redis作为核心数据基础设施,需建立完善的监控体系。本文系统梳理了Redis运维六大关键监控指标:服务器基础信息、客户端连接状态、内存使用情况、持久化状态、主从复制状态、命令统计与性能。针对每个指标提供生产环境验证的告警阈值建议,包括内存使用率(≥85%告警)、连接数(超maxclients 80%告警)、持久化状态(失败告警)、复制延迟等。同时给出Java集成监控的实现示例和Prometheus+Grafana可视化方案。通过科学监控可提前预警80%的Redi

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

如何完善Redis监控告警?

对于任何服务,系统监控告警对服务质量起着至关重要的作用,关于Redis监控报警总结如下:对于客户端:SDK集成和使用简单;SDK数据采集上报无感知;SDK可用性&稳定性保障;对于服务端:内部监控:Redis内部指标/客户端指标告警快速定位&解决;外部监控:宿主环境资源/集群拓扑诊断快速迁移&修复;资源使用:合理分配容器实例数量以及资源使用率;故障恢复:能对出现故障的实例/容器有快速恢复能力;

程序员高级码农的博客 1454

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: pip配置多个国内的python镜像源
下一篇: Redis AOF有哪些潜在的阻塞点
不与天斗8866
博客等级 码龄18年 651粉丝 196原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值