在麒麟系统中,用lscpu命令最简捷可靠地获取CPU各级缓存大小:L1d cache为一级数据缓存、L1i cache为一级指令缓存、L2 cache为二级缓存、L3 cache为三级共享缓存;也可用grep过滤/proc/cpuinfo或通过/sys/devices/system/cpu/cpu0/cache/目录验证拓扑细节。

要在麒麟操作系统中准确获取CPU各级缓存(L1数据缓存、L1指令缓存、L2缓存、L3缓存)的实际大小,必须使用能解析内核CPU拓扑结构的原生命令,不能依赖图形界面或模糊的概览信息——因为桌面环境通常不暴露L1d/L1i分离细节,也无法区分每核独占与全芯片共享的拓扑关系。
用lscpu命令直接查看各级缓存大小
这是最简捷、最可靠的方法,无需安装额外软件,输出字段明确对应各缓存层级,单位统一为KB或MB。
按Ctrl+Alt+T打开终端。
输入命令:lscpu并回车执行。
在输出结果中逐行查找以下四行:
“L1d cache” → 表示一级数据缓存(Data Cache)大小;
“L1i cache” → 表示一级指令缓存(Instruction Cache)大小;
“L2 cache” → 表示二级缓存大小;
“L3 cache” → 表示三级缓存大小。
例如看到“L1d cache: 48K”,即单个逻辑核心拥有48KB数据缓存;若显示“L3 cache: 24M”,说明全芯片共享24MB三级缓存。注意:L1d与L1i通常数值不同,且L1缓存是按核心独占的,而L3缓存是所有核心共享的——这个区别直接影响多线程性能表现。
用grep精准过滤/proc/cpuinfo中的缓存字段
当lscpu输出被截断、或你怀疑其缓存值未完整呈现(比如某些定制内核可能省略L1i),可转向原始内核接口文件验证。
方法一:执行grep -E "L1d cache|L1i cache|L2 cache|L3 cache" /proc/cpuinfo并回车。
该命令会从/proc/cpuinfo中提取所有含缓存关键词的行,但要注意:/proc/cpuinfo默认只显示第一个逻辑CPU的信息,所以这里输出的L1/L2值仅代表单个核心的配置,L3值则通常是全局一致的。
方法二:若想确认L3是否真为全芯片共享,运行grep "cache size" /proc/cpuinfo | head -n 1,该命令只取首行“cache size”字段——它在多数Intel/AMD平台上等价于L3缓存值,但不适用于混合架构CPU(如12代及以后Intel P/E核),因为这类处理器的cache size字段可能仅反映P核部分。
通过/sys/devices/system/cpu/cpu0/cache/目录查看真实缓存拓扑
这是唯一能确认缓存归属关系(是否跨核共享、是否按超线程隔离)的方法,适用于性能调优或缓存敏感编程场景。
第一步:列出缓存索引目录:ls /sys/devices/system/cpu/cpu0/cache/
你会看到类似index0、index1、index2等子目录,每个对应一个物理缓存单元。
第二步:进入任一index子目录,例如index0,执行:cat /sys/devices/system/cpu/cpu0/cache/index0/level → 返回数字1,说明是L1级缓存。
第三步:再执行:cat /sys/devices/system/cpu/cpu0/cache/index0/type → 若返回Data,即为L1d;若返回Instruction,即为L1i。
第四步:对index2执行:cat /sys/devices/system/cpu/cpu0/cache/index2/level → 若返回3,且shared_cpu_list内容为0-15,就证实这是16核共享的L3缓存。


















