Redis开发运维实践上线部署规划之内存规划
一定要设置最大内存maxmemory参数,否则物理内存用爆了就会大量使用Swap,写RDB文件时的速度很慢。注意这个参数指的是info中的used_memory,在一些不利于jmalloc的时候,内存碎片会很大。
多留55%内存是最安全的。重写AOF文件和RDB文件的进程(即使不做持久化,复制到Slave的时候也要写RDB)会fork出一条新进程来,采用了操作系统的Copy-On-Write策略(子进程与父进程共享Page。如果父进程的Page-每页4K有修改,父进程自己创建那个Page的副本,不会影响到子进程)。
另外,需要考虑内存碎片,假设碎片为1.2,则如果机器为64G,那么64*45%/1.2 = 24G作为maxmemory是比较安全的规划。
留意Console打出来的报告,如"RDB: 1215 MB of memory used by copy-on-write"。在系统极度繁忙时,如果父进程的所有Page在子进程写RDB过程中都被修改过了,就需要两倍内存。
按照Redis启动时的提醒,设置
使得fork()一条10G的进程时,因为COW策略而不一定需要有10G的free memory。
另外,记得关闭THP,这个默认的Linux内存页面大小分配策略会导致RDB时出现巨大的latency和巨大的内存占用。关闭方法为:
当最大内存到达时,按照配置的Policy进行处理, 默认策略为volatile-lru,对设置了expire time的key进行LRU清除(不是按实际expire time)。如果沒有数据设置了expire time或者policy为noeviction,则直接报错,但此时系统仍支持get之类的读操作。 另外还有几种policy,比如volatile-ttl按最接近expire time的,allkeys-lru对所有key都做LRU。注意在一般的缓存系统中,如果没有设置超时时间,则lru的策略需要设置为allkeys-lru,并且应用需要做好未命中的异常处理。特殊的,当redis当做DB时,请使用noneviction策略,但是需要对系统内存监控加强粒度。
CPU不求核数多,但求主频高,Cache大,因为redis主处理模式是单进程的。同时避免使用虚拟机。
Redis开发运维实践指南
本文为《Redis开发运维实践指南》内容,该书作者为黄鹏程,已授权云栖社区转载。
TencentOS Server 配置 docker / docker-compose 一键部署 redis,rabbitmq 容器 TencentOS Server (tlinux 3.1)配置 docker,compose 工具,并一键部署多容器(redis,rabbitmq)。TencentOS Server 是腾讯公司自主研发的定制化服务器操作系统。该系统集成了众多服务 器系列的优点,加入自主研发的软件,便于用户操作使用,提供全方位(内核及用户态)的 操作系统支持...
【实用教程】在配备持久内存的实例上部署Redis应用 配备持久内存的实例(例如re7p、r7p、re6p)提供了超大CPU内存配比,Redis应用运行在这类实例上可以大幅度降低单GiB内存的成本。本文以部分操作系统为例,介绍如何在这类实例上快速部署Redis应用。
sql server 运维时CPU,内存,操作系统等信息查询(用sql语句) 原文:sql server 运维时CPU,内存,操作系统等信息查询(用sql语句) 我们只要用到数据库,一般会遇到数据库运维方面的事情,需要我们寻找原因,有很多是关乎处理器(CPU)、内存(Memory)、磁盘(Disk)以及操作系统的,这时我们就需要查询他们的一些设置和内容,下面讲的就是如何查询它们的相关信息。
相关文章
- python redis之连接池的原理
- python操作redis用法详解
- linux - redis-trib.rb 命令详解
- redis持久化(persistence)
- 高并发下redis
- Redis学习(8)-redis持久化
- Redis配置文件详解(redis.conf)
- redis和mongodb
- Docker搭建Redis高可用集群(基于redis-sentinel)
- Redis的安装与idea中的使用
- [转]redis.conf的配置解析
- 〖Python 数据库开发实战 - Python与Redis交互篇④〗- 利用 redis-py 实现集合与有序集合的常用指令操作
- 深入理解 Redis Template及4种序列化方式__spring boot整合redis实现RedisTemplate三分钟快速入门
- Redis之父Antirez谈副业与主业
- Redis使用示例及在PHP环境中用redis存储session
- Redis的事务
- Redis源代码分析(23)--- CRC循环冗余算法RAND随机数的算法
- Redis内存碎片
- 【服务器安装Redis】Centos7离线安装redis
- redis单线程原理___Redis为何那么快-----底层原理浅析
- Redis_09_Redis内存回收机制
- 【redis源码分析】Redis Sentinel 是如何实际解决分布式共识问题的
- 【redis】redis内存管理、淘汰机制、内存优化
- 配置logstash从redis读取filebeat收集的日志(上)