【灵魂拷问】在社区中经常遇到一些低于官方要求配置部署 TiDB 的小伙伴,如何判断他们的问题是否是资源不够引起的?

在社区中经常遇到一些低于官方要求配置部署 TiDB 的小伙伴,

问题一:

如何判断他们的问题是否是资源不够引起的?

有没有哪些关键的报错,或者一些问题,可以明显得看出是内存不够、资源不够导致的?

问题二

是不是低于官方要求配置的问题我们需要先引导按照官方要求先提升资源配置看,看看问题是否会出现?

问题三

如果一些明确资源不足导致的问题,但是小伙伴们没有资源可以申请,这个时候应该如何引导他?

看看overview先,如果系统资源监控有问题,那肯定得先看系统资源足不足了。其实数据库这东西,当你资源足够的情况下,无脑堆资源,再烂的sql也给你跑起来,资源不够就优化一些参数,还不行,就从sql或者应用层面着手,从小处慢慢优化,数据库才能好好跑起来。。。

我觉得吧,还是取决于TiDB的定位,目前我个人观点中国大部分客户还是中小型客户占90%,说白了TiDB的部署还是需要有一定的资源门槛的,您说的这种情况之所以存在,是因为公司没打算资源投入,只是尝试一下TiDB,结果由于资源不足导致客户体验不好,所以中小型客户直接使用mysql或pg单机是不是更容易,为什么要尝试TiDB呢,原因就是TiDB毕竟是崇尚技术的开放型公司,而且总部在中国,他们也想体验下分布式数据库的好处,这种问题越多,对于TiDB来说越是好事。
所以TiDB如果想要从根本上解决这个问题,需要将功能模块化,推出一些简易版,标准版,旗舰版,假设有中小客户想体验一下TiDB,又不想前期投入很多资源,可以尝试安装一下简易版,当然简易版必须不那么依赖资源,但是又具有TiDB的核心分布式功能的良好体验,只是从数据量级上有限制,并让客户清楚知晓这种限制,这样我想可以最大程度上规避这种问题。什么资源配置对应什么数据量级,这种体验是合理的。

就个人经验来讲,除了oom的问题比较统一外,资源不足,可能会有各种各样的问题,大的方向来讲,渐进的有几个措施:
1.明知资源不足的情况下,尝试重启,然后看看问题是否解决
2.在重启解决不了的情况下,虚拟化或者云环境可以临时补充资源,查证问题是否解决
3.以上步骤都不能解决可以认为资源的影响较小,尝试其他方案
资源不足是个辩证的问题,就算是用了官方的推荐配置,如果处理的数据量就是比较大,或者sql对当前资源较为复杂,也可以理解为资源不足,这时候需要优先尝试拆分数据或者优化sql了

出一个官方最佳实践的指导手册。

为什么官方资源配置要求没有针对虚拟化环境下的配置推荐,比如pCPU型号推荐,pCPU与vCPU配比多少合适,然后各组件推荐多少vCPU这种。

问题一:
资源和使用场景需要配对, 低配的资源对于适合的场景还是可以hold住的(@Kongdom 是有甚多实践经验的),另外对于处理能力性能要求有准确的描述,对于资源的定义会更准确
例如:
要求每秒处理 2000 条数据的写入能力,每条数据大概50 KB
要求支持100个并发查询,查询的数据量级大概在 2千万… 查询延时可以到 2 秒

对于资源不足的问题,可以参考 读写慢排查的总章,通过 dashboard 或者 prometheus 获取相关的指标参数进行比对… 很容易观察出来

问题二:
完善场景和要求描述,能够参考官方给予的预设参数,对一些资源配置参数进行调整后,在进行 POC
对于 POC 中出现的问题,要进行排查和总结,参考【问题一中的排查过程】,很容易判断是否是资源不足引发的

问题三:
场景和资源不匹配,会导致最终获取不到想要的结果,这个是要通过 POC 来确认的,需要通过数据来说话,其次这些问题的收集和总结,能够帮助社区以及 tidb 对改善和优化的方向提供相应的一些参考
@Billmay表妹

以上是我对于这些问题的看法 :upside_down_face: (比较啰嗦 :rofl:

2 个赞