zoukankan      html  css  js  c++  java
  • 关于redis使用CPU较高的总结

    有监控

    1、部署监控工具,统计各种操作的频率;
    2、查看慢查询。

    没监控,使用命令排查

    1. 使用info和monitor命令(这两个命令也可以登录之后使用,不过有可能造成client的crash,可以使用tail命令优化)
    redis-cli -h 192.168.1.xx  -a 'xxx' info 
    redis-cli -h 192.168.1.xx  -a 'xxx' monitor 
    
    #info命令会显示当前的状态,monitor会显示当前的客户端的命令请求;
    
    1. 使用慢查询
    redis-cli -h 192.168.1.xx  -a 'xxx' slowlog get (reset替换get清空旧的log)
    
    #这个命令会显示出最近一段时间内的耗时较久的查询。
    
    #慢日志参考
    127.0.0.1:6379> slowlog get
    1) 1) (integer) 0 //日志唯一标示
       2) (integer) 1517305551 // 命令执行的UNIX时间戳
       3) (integer) 8248 // 命令执行的时间(微秒)
       4) 1) "config" // 执行的命令及参数
          2) "set"
          3) "slowlog-log-slower-than"
          4) "0"
    

    redis日志

    #非容器
    tailf /var/log/redis/
    
    #容器
    docker logs [参数] 容器
    -f    :实时查看
    -t    :显示时间戳(相对时间)
    --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
    --tail string    从日志末尾显示多少行日志, 默认是all
    
    例子:
    
      查看指定时间后的日志,只显示最后100行:
    $ docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID
    
      查看最近30分钟的日志:
    $ docker logs --since 30m CONTAINER_ID
    
      查看某时间之后的日志:
    $ docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID
    
      查看某时间段日志:
    $ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID
    

    redis连接数异常

    #1.查看redis连接数
    [root@redis ~]# docker exec -it 22933238fad7 redis-cli info |grep connect
    connected_clients:6809
    total_connections_received:178835
    rejected_connections:0
    connected_slaves:0
    
    #2.查看客户端连接状态
    [root@redis ~]# redis-cli client list
    id=3867 addr=172.18.0.1:33452 fd=1997 name= age=11514 idle=115140(秒) flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=NULL
    
    #3.配置客户端空闲超时时间
        查看redis客户端超时设置
    redis-cli config get timeout
    1) "timeout"
    2) "0"   #0表示不开启空闲清除
    
        设置空闲清理时间
    redis-cli config set timeout 600
    

    redis使用内存异常

    #1.查看系统内存
    [root@redis ~]$ free -g
                 total       used       free     shared    buffers     cached
    Mem:            62         61          1          0          0         25
    -/+ buffers/cache:         35         27
    Swap:            0          0          0 
    
    #2.查看redis使用内存
    [root@redis ~]# docker exec -it 22933238fad7 redis-cli info |grep memory
    used_memory:890846296
    used_memory_human:27G      #
    used_memory_rss:877944832
    used_memory_rss_human:837.27M
    used_memory_peak:942846680
    used_memory_peak_human:899.17M
    used_memory_peak_perc:94.48%
    
    #3.限制redis使用内存
        立即生效
    sysctl vm.overcommit_memory=1
    
        永久生效
    vim /etc/sysctl.conf
    vm.overcommit_memory=1
    
  • 相关阅读:
    mysq 日期相减
    说说时间观与时间管理——北漂18年(71)
    ionic之切换开关
    ionic之单选框
    SELECT ... LOCK IN SHARE MODE和SELECT ... FOR UPDATE locks在RR模式下可以看到最新的记录
    14.5.2.3 Consistent Nonlocking Reads 一致性非锁定读
    14.5.2.2 autocommit, Commit, and Rollback
    14.5.2 事务隔离级别
    对于唯一索引使用唯一条件搜索, InnoDB 只锁定找到的index record,不是它之前的区间
    mysql explain 解释
  • 原文地址:https://www.cnblogs.com/syy1757528181/p/14509599.html
Copyright © 2011-2022 走看看