pdf文档 2.1.4 PingCAP Go runtime related problems in TiDB production environment

50.15 MB 56 页 0 评论
语言 格式 评分
英语
.pdf
3
摘要
文档讨论了TiDB生产环境中Go runtime相关的问题,包括内存控制、延迟抖动和NUMA感知等方面的挑战。具体包括TiDB服务器内存占用异常、GC引起的延迟抖动、NUMA感知对性能的影响等。分析指出,Go runtime在NUMA环境下扩展性不足,主要由于锁竞争和GC不具备NUMA感知能力。TiDB已禁用THP以优化内存管理。
AI总结
## TiDB生产环境中Go运行时相关问题总结 ### 报告主题 该报告讨论了在TiDB生产环境中遇到的与Go运行时相关的问题,重点分析了性能和内存管理方面的挑战。 ### 主要问题及分析 1. **调度器延迟** - **案例研究**:批处理客户端请求用于优化调度器延迟。 - **问题描述**:调度器延迟影响请求处理效率,需优化客户端请求批处理机制。 2. **内存控制问题** - **症状**:TiDB内存占用异常,RSS(驻留内存)居高不下。 - **分析**:Go运行时错误认为内存使用不高,而操作系统未释放内存。 - **解决方案**:禁用透明大页(THP),检查内存映射(/proc/{PID}/smaps),发现AnonHugePages导致内存占用高。 3. **垃圾回收(GC)相关问题** - **问题**:GC清除导致延迟抖动,锁竞争和NUMA不感知导致性能瓶颈。 - **分析**:CPU使用率约60%,资源未耗尽但性能未提升。关键分析来自Go源代码(mem_linux.go)。 4. **NUMA感知问题** - **背景**:GC未感知NUMA,导致多核环境下扩展性差。 - **分析**:分配路径锁竞争和GC未优化是主要问题。 - **解决方案**:优化内存分配器和GC算法提现效率。 ### 结论 当前,TiDB在多核环境中的性能瓶颈主要由锁竞争和GC效率限制。PingCAP需优化内存分配器和GC算法,以提升扩展性和性能。
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余 44 页请下载阅读 -
文档评分
请文明评论,理性发言.