Linux怎么查看系统的CPU三级缓存大小

夜强君_7011

夜强君_7011

2026-06-29

431人浏览

原创

lscpu中l3 cache显示的是整颗cpu的总共享容量,因l3为全核共享资源,而l1d/l1i标的是单核私有容量;/proc/cpuinfo的cache size字段通常等价于l3总量但不可靠,需以lscpu或/sys为准。

linux怎么查看系统的cpu三级缓存大小

直接看 lscpu | grep -i 'l3 cache' 最快,但要注意它显示的是整颗 CPU 的 L3 总容量,不是每核的。

为什么 lscpu 显示的 L3 数值是“总大小”而不是“每核大小”

L3 缓存是所有核心共享的物理资源,lscpu 中的 L3 cache: 12288K 就是这颗 CPU 上全部核心共用的总量(比如 12MB),和核心数无关。这和 L1d/L1i 完全不同——后者标的是单核容量,且每核私有。所以你看到 L1d cache: 32K,不能乘以核心数去算“总 L1”,但对 L3 可以:它本来就是总和。

常见误解是把 /proc/cpuinfo 里的 cache size 当成 L2 或泛指缓存,其实它几乎总是 L3 总量(单位 KB),只是字段名没写清楚。

  • lscpu 输出里明确写了 L3 cache,优先信这个
  • /proc/cpuinfo 中的 cache size 字段多数情况下等价于 L3,但不保证——某些 ARM 或老平台可能指向别的层级
  • 如果 lscpu 没输出 L3 行(极少见),说明内核未正确解析该 CPU 的缓存拓扑,得查 /sys

当 lscpu 不可信时,怎么从 /sys 手动确认 L3 容量

某些虚拟化环境、旧内核或微码异常(如 Intel Cascade Lake 微码降级后)会导致 lscpu 把 L2 错标为共享,甚至漏掉 L3。这时必须绕过抽象层,直读硬件暴露的 sysfs 接口。

每个逻辑 CPU(如 cpu0)下的 /sys/devices/system/cpu/cpu0/cache/ 目录里,index* 子目录对应一个物理缓存单元。关键不是看名字,而是读内容:

Zynq Linux Hardware Debug
Zynq Linux Hardware Debug

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。

下载
  • cat /sys/devices/system/cpu/cpu0/cache/index*/level —— 值为 3 的才是 L3
  • cat /sys/devices/system/cpu/cpu0/cache/index*/type —— 应为 Unified(L3 是数据+指令统一缓存)
  • cat /sys/devices/system/cpu/cpu0/cache/index*/size —— 这个数字就是真实容量(如 12288K)
  • cat /sys/devices/system/cpu/cpu0/cache/index*/shared_cpu_list —— 若显示 0-15,说明是 16 核共享,进一步验证是 L3

注意:不同核心看到的 index* 数量和顺序可能不一致,但只要 level=3 且 shared_cpu_list 覆盖全部逻辑 CPU,就可确认。

dmidecode -t cache 为什么有时不准

sudo dmidecode -t cache 读的是 BIOS/UEFI 固件在 SMBIOS 表中填写的缓存描述,不是运行时探测结果。问题在于:

  • 部分厂商固件会把 L3 写成 “Not Installed” 或留空,尤其在启用某些节能特性后
  • 虚拟机里通常返回空或默认值(如 Unknown),因为 hypervisor 没透传 SMBIOS cache 条目
  • 即使显示 Size: 12288 KB,也无法区分这是 L2 还是 L3,得结合 Level 字段看——但很多老 BIOS 根本不填这个字段

所以它只适合快速交叉验证,不能作为唯一依据。真要写性能敏感代码(比如手动控制 cache line 对齐或避免 false sharing),必须依赖 lscpu 或 /sys 的实时探测结果。

真正容易被忽略的是:L3 容量 ≠ 运行时可用容量。操作系统、内存映射、NUMA node 绑定、甚至某些安全缓解措施(如 IBRS)都会动态占用部分 L3 空间。如果你在做微基准测试,别只看 lscpu 的数字,还得用 perf stat -e cache-references,cache-misses 实测命中率。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3970

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3393

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2573

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6230

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5862

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3433

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2925

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3159

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习