APP下载

Redis爆量之后的四大考验怎么解决?360自行开发改用SSD的Redis相容平台Pika

2018-01-08 20:09

NoSQL数据库是许多企业用来解决服务爆量需求的常用技术,像是开源内存数据库Redis,可以利用内存建立分散式数据库,来加快资料读取的速度,是不少大型网络服务必用的工具之一,但万一连Redis都爆量,该如何解决?这正是中国奇虎360基础架构组遇到的考验。

“当Redis容量越来越大时,会遇到问题,”360基础架构组技术经理陈宗志坦言, 360内部采用Redis好几年后,容量快速成长到50GB以上,竟产生了4大问题。

360是中国一家提供资安服务相关的网络公司,提供多项资安防御的服务,另外还推出了搜索引擎、购物平台等多项业务,用来做为网络资讯快取的Redis数据库的用量也随业务而迅速成长。

因为Redis将资料储存在内存中来加速,原本为了防止资料遗失,Redis还提供了2种机制,将资料从内存写入硬盘中,来实现资料持久化,一种称为RBD机制,也就是Redis会不定期根据使用者的设定,建立资料快照(Snapshot),来备份内存中的资料,另一种机制则是透过AOF(Append only file)的机制,将所有数据库的变动写入AOF文件中。

但是,陈宗志指出,问题就是资料量越来越大后,恢复资料所需的时间也会变长,根据360内部测试,“约50GB的Redis数据库,恢复时间大约要70分钟,”因为恢复资料时,Redis得将RBD和AOF两种机制保存的内容回复到内存中,过程需要大量硬盘存取,也需要花时间重构数据结构,因此才需要这么久的恢复时间。如何加速RBD和AOF的资料恢复速度,是360遇到的两个Redis爆量难题。

第三的挑战是来自Redis数据库的丛集架构,Redis配置采取一主多从(单一主节点,搭配多台从属节点),但“主从节点间切换的代价大”,陈宗志解释,Redis的备援设计中,当主数据库无法使用时,则会自动选择另一个节点来担任新的主要数据库,但是,在主从转换的过程,所有从属节点都需要与新的主节点重新建立连结,此时得全部重新传输的资料,这个问题直到2017年中释出的 Redis 4.0版本,才解决,但也困扰了360很长一段时间。

最后一项爆量考验是,Redis在大容量下也会产生缓冲区写满的问题,尤其一般企业多半只会设置约2GB的缓冲区,但是因为大型Redis数据库产生的网络流量很大,缓冲区容易被资料堵死,而发生数据重传的情况,陈宗志表示,数据重传就会影响到用户的查询请求。

为了解决这些问题,扩充内存容量似乎是唯一的办法,不过,陈宗志表示,内存成本昂贵,对没有直接创造收益的基础架构团队来说,得想办法为企业节省成本。

他指出,360目前内部使用的Redis实例(Instance)配置,可分为64GB和96GB两种规格,一项业务通常就会需要用到一个Redis的Instance,大约需80GB的容量,执行实例底层的硬件成本每台约3万人民币(约台币13万元),但若每项业务都配置一套机器,对企业而言,投入成本很高。

因此,360开始思考如何在满足业务的需求下,将成本降到最低,360基础架构团队找DBA人员,自行开发了一套解决大容量Redis的软件称为Pika,首要目标就是,Pika要完全相容Redis协议,一方面可以继承Redis方便维运的设计,也能让开发团队不需要修改任何一行程式码就能迁移数据库,其次,不同于Redis的RBD和AOF的持久化储存机制,Pika改将资料自动写入固态硬盘,来解决Redis资料恢复太长的问题。Pika系统包括了4层,包括了网络模组Pink、Threading模组、储存引擎nemo和日志模组 binlog。

因为高速内存的价格时常波动而且相当昂贵,对采购作业而言是个头痛的问题,而Pika采用固态硬盘作为储存装置,固态硬盘的成本比高速内存便宜许多,就能成功地降低NoSQL数据库的整体建置成本,而且Pika还提供多种压缩方式,可以进一步减量来节省储存设备的空间。

虽然Pika因为将数据存在硬盘中,效能会差一点,但是,陈宗志表示,效能并不会差太多,360会将可以容忍这种效能差异的业务,先移转到Pika上,也因此而减少了大量的内存成本。不过,若是业务成长快速,确实对效能的要求很高,Pika也提供能够从Pika导回Redis的工具。

陈宗志举例,360内部一开始先将消息推送服务迁移到Pika上,原本这项服务需要5套30GB资料量大小的Redis数据库,运作时需要使用到300GB的内存用量,但迁移到Pika之后,只需要1套50G资料量大小的Pika, 借助压缩技术,占用的固态硬盘空间也只需要100GB。

后来,360还将数据分析服务从Redis迁移到Pika,这项分析服务刚上线时,只需要一个Redis Instance就能承载,但是推出不到一周,所用的Redis数据库容量就暴增到40GB,不过,考量到数据分析服务不会有超大量的存取需求,因此,360很快地就像这项新服务迁移到Pika上,即使效能没有Redis这么好,但已经足够满足这项服务的需求。

相关文章

最新资讯

  • IoT双周报第69期:工研院拔得头筹!交通部核发全台首张无人车试车牌
    2019-09-16 23:48
  • Spotify收购音乐人媒合市集SoundBetter
    2019-09-16 23:48
  • 电影票走订阅模式碰壁,MoviePass已经关门大吉了
    2019-09-16 22:49
  • 如何落实产业AI化?德国靠24个研发中心助中小型企业转型
    2019-09-16 22:49
  • 欢太科技有限公司:5G将会为我们带来什么?
    2019-09-16 17:52

手机

  • OPPO Reno 2 实机动眼看 台湾最快十月中上市
    2019-09-16 16:48
  • 平价 S855 旗舰机小米 9T Pro 动手玩 依旧是高性价比手机代表
    2019-09-16 14:46
  • 2019 iPhone 新机及苹果周边推荐大汇整 小编推荐不踩雷大清单 绝对能让你的手机焕然一新 快看看你想要什么 我们通通送要送出去
    2019-09-16 12:46
  • 外媒一次收到了21张 Google Pixel 4 XL 的泄密照 却找不到长焦镜头的证据
    2019-09-15 15:48
  • Pixel 4宣传影片带来的不止是夜拍功能改进、还宣称你可以星空夜拍
    2019-09-15 09:51

数码

  • 微软Edge团队重塑三星Fold等折叠屏手机网页体验
    2019-09-16 14:47
  • 苹果U1芯片处理器新技术与性能 或将开启超宽带时代
    2019-09-16 14:47
  • 小米全面屏电视Pro官宣:更全面的全面屏,9月2…
    2019-09-16 21:59
  • 荣耀Play 3参数价格配置亮点介绍 支持4800万硬件直出
    2019-09-16 14:47
  • 华为Mate 30 RS保时捷设计渲染图曝光
    2019-09-16 15:52

科技

  • 抖音评论拉出去灌肠是什么梗和意思 拉出去灌肠含义出处
    2019-09-16 19:46
  • Waymo希望通过无人车解决最后一公里问题
    2018-08-01 11:31
  • 汇顶科技回应专利被宣告无效:正积极申请行政诉讼
    2019-09-16 19:46
  • 拍照比剪刀手真的会泄露指纹信息吗?业内专家九滴水微博辟谣
    2019-09-16 19:46
  • 原安波福副总裁韦峻青加入滴滴自动驾驶公司任CTO
    2019-09-16 19:46