加载中...
大页内存是指使用远大于默认 4KB 的内存页(如 2MB 或 1GB)来管理内存的技术。它能显著减少页表项数量和 TLB 未命中,提升大内存应用的性能,常用于数据库和虚拟化场景。

| 中文名 | 大页内存 |
| 英文名 | HugePages |
| 常见页大小 | 2MB、1GB |
| 默认页大小 | 4KB |
| 主要收益 | 减少 TLB 未命中 |
大页内存(HugePages)是操作系统提供的一种使用超大内存页面的机制。相对于常见的 4KB 标准页,大页可以是 2MB 甚至 1GB,通过用更少的页面覆盖同样大小的内存,显著降低页表开销和 TLB 未命中率,从而提升访问大块内存的应用性能。
虚拟内存以页为单位管理,默认页大小通常为 4KB。当程序使用数十 GB 内存时,4KB 页会产生海量页表项,TLB 容量有限难以覆盖,导致频繁的 TLB Miss 和页表遍历。大页把单页容量放大成百上千倍,一个 TLB 项就能映射更大范围的内存,大幅减少地址转换开销。
大页广泛用于内存密集型场景:Oracle、MySQL、PostgreSQL 等数据库常配置大页承载缓冲池;KVM、QEMU 等虚拟化平台用大页提升客户机内存性能;JVM 和高性能计算程序也可通过大页降低 GC 与访存开销。
问:透明大页(THP)一定要开启吗?答:不一定。THP 对通用负载多数有益,但部分数据库(如 Redis、Oracle)在特定情况下会因 THP 的内存整理产生延迟毛刺,官方建议关闭并改用静态大页。
问:大页会浪费内存吗?答:可能会。大页以更大粒度分配,若应用只用到其中一小部分,剩余空间难以被其他进程利用,因此需要按实际需求合理配置。

| 中文名 | 大页内存 |
| 英文名 | HugePages |
| 常见页大小 | 2MB、1GB |
| 默认页大小 | 4KB |
| 主要收益 | 减少 TLB 未命中 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧