深入理解 Linux 内核--jemalloc 引起的 TLB shootdown 及优化

本文选自“字节跳动基础架构实践”系列文章。

“字节跳动基础架构实践”系列文章是由字节跳动基础架构部门各技术团队及专家倾力打造的技术干货内容,和大家分享团队在基础架构发展和演进过程中的实践经验与教训,与各位技术同学一起交流成长。

“延迟突刺”、“性能抖动”等问题通常会受到多方因素影响不便排查,本文以线上问题为例,详解 TLB shootdown,最终使得 CPU 的消耗降低 2% 左右,并消除了抖动突刺,变得更加稳定。

问题背景

在互联网业务运行的过程中,难免遇到“延迟突刺”、“性能抖动”等问题,而通常这类问题会受到多种软件环境甚至硬件环境的影响,原因较为隐晦,解决起来相对棘手。

本文以一个线上问题为例子,深入 x86 体系结构,结合内核内存管理的知识,辅以多种 Linux 平台上的 Debug 工具,详解 TLB shootdown 问题,最终解决掉该问题,提升了业务性能。

名词约定

Kernel: 本文中特指 Linux-4.14。

KVM: Kernel-based Virtual Machine。现在主流的虚拟机技术之一。

Host: 指虚拟化场景下的宿主机。

Guest: 指虚拟化场景下的虚拟机。

APIC: Advanced Programmable Interrupt Controller 。Intel CPU 使用的中断控制器。

LAPIC: Local Advanced Programmable Interrupt Controller 。

IPI: Inter-Processor Interrupt。CPU 之间相互通知使用。

MMU: Memory Management Unit。Kernel 用来管理虚拟地址和物理地址映射的硬件。

TLB: Translation Lookaside Buffer。MMU 为了加速查找页表,使用的 cache。用来加速 MMU 的转化速度。

PTE: Page Table Entry 。管理页表使用的页表项。

jemalloc: 一个用户态内存管理的库,在多线程并发的场景下,malloc/free 的性能好于 glibc 默认的实现。

TLB shootdown

TLB shootdown 是如何发生的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值