58 同城 TiDB 4.0 报告
作者:刘春雷
原文来源: https://tidb.net/blog/f40b0eb4
58同城TiDB4.0报告
–刘春雷 58DBA
1、前言
58同城自2018年6月左右开始上线2.0版本,2019 年 5 月 3.0版本发布,58积极跟进新版本的测试、调研等,对线上20套+集群进行版本升级,提升了稳定性与性能。
2020年4月发布4.0 RC版,58同城同样进行版本升级,新版本带来了性能、稳定性的提升,TiFlash的引入,提升了OLTP业务的能力、dashboard等的引入使DBA更了解了数据库的状态。
历经2个月左右的时间,已经将线上的40套3.0.7 升级为4.0.2版本,且部署了2套TiFlash。并同时对于4.0版本的自动化运维进行了相应工具开发改造。达到平台自动化部署、扩容等要求。
2、58同城TiDB数据库情况
58同城TiDB数据库业务涵盖公司10多条业务线,有多种场景的应用,例如数仓、日志、监控、报表平台、聊天信息、信安数据、客服等。
【增长趋势如图】:
3、升级4.0版本
3.1、升级方式
使用Ansible升级,或者TiUP方式测试均可以,官方推荐TiUP进行版本升级。
3.2、升级量
升级线上40套TiDB集群,版本为3.0.7,4.0.0-rc.2 ,升级至4.0.2
3.3、升级准备工作
- 修正目录权限,/home/tidb 目录 要chown 下权限
- 集群的node_exporter_port,blackbox_exporter_port端口修正为一致,扩缩容方式
- TiUP导入inventory.ini配置文件,tiup cluster edit-config修正配置文件
- tiup cluster display查看状态
3.4、升级效果
有些集群升级后提升明显,例如某集群SQL执行时间降低93%,大部分集群SQL执行时间下降10-20%左右,也有部分集群SQL执行时间增加的情况,大致原因是升级后QPS量增加了,集群压力增大,SQL执行时间增加了一些
【举例提升明显的集群】
3.5、升级避坑指南
- 问题:TiUP在线版本升级容易存在网络下载失败的情况。
- 处理:重试即可
- 问题:TiUP离线版本升级,下载对应的新版本要注意下载目录的大小,容易有目录大小不对的情况
- 处理:注意目录大小,重新下载
- 问题:TiUP使用:曾导致TiKV被异常停服、删除,导致线上服务受了影响。原因为没有指定对应的版本,导致某些包找不到就给tikv下线了…
- 处理:使用对应版本(目前新版本已经修复,可以使用新版本操作旧版本的TiDB了)
- 问题:长时间运行的TiKV重启需要比较长的时间,会存在重启TiKV超时的情况
- 处理:再次执行,或者调整等待重启的时间
- 问题:TiUP导入inventory.ini,如果是自定义了node_exporter_port,blackbox_exporter_port端口,会报升级报找不到服务
- 处理:要tiup cluster edit-config 查看下具体配置,需要手动更改成正确的端口,且提前要修正为所有节点这2个端口要一致的!
- 问题:TiUP 导入配置重新命名的集群名字是不能被后期再修改的
- 处理:官方也无法处理,导入重新命名要慎重
- 问题:TiUP升级前,目前权限导致升级失败
- 处理:例如/home/tidb 目录 要chown 下权限
- 问题:TiDB 4.0版本,低版本存在部分bug(有一定宕机率的问题、及官方给的bug)
- 处理:推荐升级至4.0.2 版本及以上
- 问题:升级4版本会导致prometheus的api内部的端口变化,导致有些监控没有数据,以及升级存在导致prometheus的部分api数据不对
- 处理:需要使用tiup reload下监控节点
- 问题:如果升级中途失败过,可能导致某些TiKV节点成为 evict-leader-scheduler
- 处理: pd-ctl 查看,执行scheduler remove evict-leader-scheduler
- 问题:如果系统内核版本过低,存在内存使用过高导致宕机
- 处理:推荐使用高版本内核,否则会触发内核bug
- 问题:升级后,SQL执行时间有所变长
- 处理:可能存在升级后,SQL执行效率好了,导致QPS升高,流量大了,反倒导致SQL执行时间有所变长,需要参考着看
4、TiUP运维使用姿势
- 问题:在线 or 离线?
- 考虑网络安全,推荐离线,升级的话可以临时开外网权限,进行打包,或者其他机器下载后上传
- TiUP自动化使用:
- 58这边:开发工具,根据元信息自动生成相关节点的拓扑yaml文件,然后自动化执行扩缩容等,目前已经支持3.0/4.0版本的部署、扩缩容tidb/pd/tikv等自动化,与CDB(内部数据库自动化平台)联动
- DBA拓扑登录工具:快速展示store、member、配置等信息
- 更改pd-ctl 为tiup ctl pd -u ' http://IP :Port
- 集群部署、扩缩容自动化工具,添加运维方式
- 3版本为Ansible方式,4版本使用TiUP方式
5、日常使用经验
情况:58同城初期为多集群的TiDB混合部署
问题:导致存在多集群相互影响的问题,例如某个集群的慢SQL,会影响其他集群,排查问题需要查看多个监控
处理:TiDB节点虚拟化,独立部署。解决了相互影响问题
情况:TiKV节点多集群混合部署
问题:导致集群负载过高
处理:调整TiKV的capacity,及CPU设置等,且单TiKV机器限制混合部署数量,或者使用更好的磁盘,例如闪存卡等
情况:单机群多库
问题:内部相互影响
处理:拆~拆~拆~,大的库迁移出去,且在上线之初评估好库情况,或者前期可以先使用mysql,后期量大了再迁移至TiDB
情况:单机群不宜过大
问题:目前以58同城的TiDB数据库情况来看,大于15T左右,集群的性能会稍微有所下降,且备份也是难题。
处理:及时清理、归档数据,不宜多个库放一个集群,最好控制下单集群的存储量,开启静默region,关注集群SQL执行时间与存储量的关系。
情况:TiKV机器SSD 、闪存卡
问题:TiVK机器,内存及CPU相比磁盘IO瓶颈不大,如果磁盘IO性能不好,会导致SQL执行时间变长,且不能混合部署,导致资源浪费。
有些时候,集群SQL执行时间长,扩容TiKV的SSD机器,并不能很好的提升效率,改成同样数量的闪存卡提升明显。
处理:如果可以,推荐闪存卡,我们使用闪存卡部署了部分TiKV,提效明显,且可以混合部署,可能反倒节约了成本
情况:版本
问题:低版本性能相比高版本差一些
处理:尽量升级至高版本
情况:TiDB Server节点数量
问题:TiDB Server节点数量少,集群QPS高,会导致SQL执行时间变长
处理:扩容TiDB Server节点
58 同城 TiDB 4.0 报告相关推荐
- 58同城和赶集网欢迎页发微-借势营销
2015年04月17日 15:36,这一次头条属于他们-58同城和赶集网,详情点击:58同城同意收购赶集网股权 获43.2%股份 看了这个新闻,瞬间爆炸,十年的刀兵相见,如今终于耳鬓厮磨.于是下载了5 ...
- StarRocks 企业行|走进 58 同城,探索极速统一 3.0 时代的企业实践
新的一年,新的征程. 随着 StarRocks 项目的演进,StarRocks 也迈入了极速统一 3.0 的时代. 极速 OLAP + 极速数据湖分析将带给企业什么价值?StarRocks 的用户又是 ...
- 58同城、安居客发布《2022春节返城租房调查报告》:超三成租客月薪过万
随着城市复工复产,以及春节后跳槽热.高校生实习以及大量务工人员返城的影响,新的一波租房高峰也如期到来.近日,58同城.安居客重磅发布了<2022春节返城租房调查报告>,报告显示,一线城市租 ...
- 2020生活性服务业就业指数报告-58同城-2021
来源 | 58同城 生活性服务业是指满足居民最终消费需求的服务活动.2019年,国家统计局印发<生活性服务业统计分类(2019)>的通知,将生活性服务业分为十二大领域:居民和家庭服务,健康 ...
- 【实践】58同城本地服务推荐系统演进
猜你喜欢 0.图模型在信息流推荐系统中的原理和实践1.如何搭建一套个性化推荐系统?2.从零开始搭建创业公司后台技术栈3.全民K歌推荐系统算法.架构及后台实现4.微博推荐算法实践与机器学习平台演进5.腾 ...
- 58同城私有化:错过移动红利,吃流量老本,如何挽回崩塌的形象?
从分类信息之王到87亿美元"卖身",时代抛弃58同城的时候,连招呼都不打一声. 6月15日,58同城发布公告,称与Quantum Bloom Group Ltd.签订合并协议.根据 ...
- 58同城再曝上市传闻:筹资至少1亿美元
合肥技术联盟群联最新资讯20130801 58同城再曝上市传闻:筹资至少1亿美元 匿名消息人士称,58同城正在与瑞士信贷和摩根士丹利展开合作,筹备IPO交易. 原文链接:http://hfta.sin ...
- 58同城首页腰部动态化技术选型(布局动态化)
1. 行业情况 1.1 基本概念介绍 1.1.1 Web混合 Web 前端和客户端的混合开发.使用 WebView 进行页面渲染.逻辑执行:依赖客户端的能力需要通过 JSBridge(通信桥) 的方式 ...
- 分享篇 - 58同城基于Android APP Bundle开发的全新编译模式(编译速度提升70%)
目录 1. Wafers 项目背景 2. 效果展示 3. 实现方案 4. 改造期间遇到的问题 5. 如何接入使用 6. 对比 Instant Run 和 Apply Changes 7. 总结 1. ...
最新文章
- (C++)1026 程序运行时间
- 题解 【USACO 4.2.1】草地排水
- 【商业落地篇】Gartner第四范式全球首发AutoML系列白皮书(限时免费下载)
- SAP CRM WebClient UI BSP customized theme storage table
- C# 8: 默认接口方法
- 第4章 第三节 内核同步
- 神龙架构没那么难理解—图解世界领先的阿里云神龙架构(二)神龙出世
- 小程序采用mvvm设计模式_滴滴重磅开源跨平台统一 MVVM 框架 Chameleon
- 好大夫王航:长尾开发者应尽快接入百度轻应用
- php生成svg图片不显示,css svg不显示不出来怎么办
- ActionScript3.0中获取变量类型的方法
- Perhaps you should add the directory containing libpcre.pc to the PKG_CONFIG_PATH
- android+pdf+软件,Android最强PDF阅读器 十款软件大PK
- android小游戏代码
- html怎么给div加半透明背景色,CSS_div背景半透明 覆盖整个可视区域的遮罩层效果,html代码很简单 div class= - phpStudy...
- 非常非常地重试重试组件,使用杠铃的
- VSCode远程连接服务器报错:Could not establish connection to “xxx”,Faild to write install script to path!【已解决】
- Matlab(将2维图片显示成3维图形)
- 关于并发量的简单计算公式
- 关于对接海康威视综合安防平台并使用SDK下载过车视频