美文网首页
redis常见问题

redis常见问题

作者: 写啥呢 | 来源:发表于2019-06-18 09:55 被阅读0次

问题一

WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. 
This will create latency and memory usage issues with Redis. To fix this issue run the 
command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and 
add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be 
restarted after THP is disabled.

转载:https://baijiahao.baidu.com/s?id=1607973381088116497&wfr=spider&for=pc
内存是由块管理,即众所周知的页面。超大页面是 2MB 和 1GB 大小的内存块。2MB 使用的页表可管理多 GB 内存,而 1GB 页是 TB 内存的最佳选择。红帽企业版 Linux 6 开始就采用了超大页面管理。

超大页面必须在引导时分配。它们也很难手动管理,且经常需要更改代码以便可以有效使用。因此红帽企业版 Linux 也部署了透明超大页面 (THP)。THP 是一个提取层,可自动创建、管理和使用超大页面的大多数方面。THP可以改进系统的性能。

开关文件

cat /sys/kernel/mm/transparent_hugepage/enabled

使用命令查看时,如果输出结果为[always]表示透明大页启用了。[never]表示透明大页禁用、[madvise]表示(只在MADV_HUGEPAGE标志的VMA中使用THP)

存在问题

THP在有些应用场景会出现异常,因此oracle、mongodb、redis等服务都建议关闭这个特性,因为这个可能导致延迟和内存使用问题。

临时解决方法:

echo never > /sys/kernel/mm/transparent_hugepage/enabled

RHEL/CentOS可以直接写到/etc/rc.local里面实现开始自动修改

总结

Transparent Huge Pages(THP)可以减少使用超大页面的复杂行,目前THP已在各种系统、配置、程序和负载中测试优化,可以改进大多数系统配置的性能。如果不是必要,或者已知存在问题的服务,还是建议开启来。

问题二

WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

转载:https://jingyan.baidu.com/article/c33e3f48e2ff1cea15cbb5b0.html
原因就是因为128太小了。执行echo 511 > /proc/sys/net/core/somaxconn

命令就把这个问题解决了。但是这个只是暂时的。如果想要永久解决,打开ietc/sysctl.conf
在这里面添net.core.somaxconn= 1024 然后执行sysctl -p 就可以永久消除这个warning
在这启动redis就看不到这个128的warning了

对于TCP backlog的理解可以读这篇:
转载:https://blog.csdn.net/lizhitao/article/details/9204405

问题三 background save db不成功(所需内存不够导致。Background save may fail under low memory condition,(其他方式可以通过释放buffer/cache然后重启,也可以通过扩展服务器内存方式)。)
注意:redis持久化策略不同对内存的需求也不一样;可以看这篇文章理解持久化策略(RDB和AOF的配置) 转载:https://www.cnblogs.com/itdragon/p/7906481.html

 WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.

overcommit_memory 可选值0 1 2
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

解决办法

将vm.overcommit_memory 设为1

(1)编辑/etc/sysctl.conf ,改vm.overcommit_memory=1,然后sysctl -p 使配置文件生效

(2)sysctl vm.overcommit_memory=1

(3)echo 1 > /proc/sys/vm/overcommit_memory

可以看这篇文章:https://blog.csdn.net/whycold/article/details/21388455

问题四:redis Error moving temp DB file temp-20970.rdb on the final destination root (in server root dir /var/spool/cron): Operation not permitted

    权限不足,以管理员权限运行程序。sudo.

其他

RDB方式 的优缺点

优点:
1 适合大规模的数据恢复。
2 如果业务对数据完整性和一致性要求不高,RDB是很好的选择。

缺点:
1 数据的完整性和一致性不高,因为RDB可能在最后一次备份时宕机了。
2 备份时占用内存,因为Redis 在备份时会独立创建一个子进程,将数据写入到一个临时文件(此时内存中的数据是原来的两倍哦),最后再将临时文件替换之前的备份文件。
所以Redis 的持久化和数据的恢复要选择在夜深人静的时候执行是比较合理的。

AOF方式的优缺点

优点:数据的完整性和一致性更高
缺点:因为AOF记录的内容多,文件会越来越大,数据恢复也会越来越慢。

相关文章

  • 八、Linux(CentOS7)安装Redis

    安装Redis的操作步骤: 常见问题:1、redis不能远程连接时,可能是防火墙的问题:

  • Spring Cache相关

    SpringCache官方文档 常见问题使用redis作为存储cache,@CacheConfig:cacheNa...

  • mac下安装配置redis

    一准备工作二 安装redis服务器三redis服务器的启动、使用和退出四 配置php使用redis服务五 常见问题...

  • Redis 安装和集群环境搭建

    Redis 的安装部署非常简单,本文将按照 Redis 下载、单节点安装部署、集群环境搭建和常见问题解决几个部分加...

  • Redis 面试常见问题

    Redis常见问题 为什么使用Redis性能和并发(分布式锁还有其他中间件可以代替)性能需要执行耗时特别久,且结果...

  • Redis总结

    一、数据类型 二、使用场景 二、redis缓存使用总结 三、redis缓存常见问题 四、布隆过滤器的方式解决缓存穿透问题

  • redis常见题目

    redis 分布式锁常见问题 注意:redis的单个指令是原子性,但是多个指令就不能保证原子性了。这个时候如果要保...

  • 《Redis实战》

    阅读本书可以让你学到很多小技巧、小窍门以及使用Redis解决某些常见问题的方法。 redis五大数据类型 stri...

  • redis常见问题

    1.redis数据结构 redis五种数据结构StringHash 优点由于Hash结构会在单个Hash元素在不足...

  • Redis——常见问题

    fork操作 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相...

网友评论

      本文标题:redis常见问题

      本文链接:https://www.haomeiwen.com/subject/phrxqctx.html