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 页请下载阅读 -
文档评分