我正在寻找一个命令来检查 Unix 系统上的片上 L3 缓存大小。
答案1
看一下 dmidecode,它有一个出色的手册页。
查找名为“处理器信息”的条目,我的条目内容如下:
Handle 0x0004, DMI type 4, 35 bytes
Processor Information
...
L1 Cache Handle: 0x0008
L2 Cache Handle: 0x0009
L3 Cache Handle: Not Provided
...
这告诉我要查找句柄 0x0009(用于 L2 缓存,因为我没有 L3)。内容如下:
Handle 0x0009, DMI type 7, 19 bytes
Cache Information
Socket Designation: L2 Cache
Configuration: Enabled, Socketed, Level 2
Operational Mode: Write Back
Location: External
Installed Size: 2048 KB
Maximum Size: 2048 KB
Supported SRAM Types:
Burst
Pipeline Burst
Asynchronous
Installed SRAM Type: Burst
Speed: Unknown
Error Correction Type: Unknown
System Type: Unknown
Associativity: Unknown
答案2
/sys/devices/system/cpu/cpu#/cache
在运行在 x86 架构上的最新 Linux 内核中,您可能可以在(用 CPU 编号替换)找到所需的信息#
。例如,在这台计算机上(没有 L3 缓存):
$ cat /sys/devices/system/cpu/cpu0/cache/index0/level
1
$ cat /sys/devices/system/cpu/cpu0/cache/index0/type
Data
$ cat /sys/devices/system/cpu/cpu0/cache/index0/size
64K
$ cat /sys/devices/system/cpu/cpu0/cache/index1/level
1
$ cat /sys/devices/system/cpu/cpu0/cache/index1/type
Instruction
$ cat /sys/devices/system/cpu/cpu0/cache/index1/size
64K
$ cat /sys/devices/system/cpu/cpu0/cache/index2/level
2
$ cat /sys/devices/system/cpu/cpu0/cache/index2/type
Unified
$ cat /sys/devices/system/cpu/cpu0/cache/index2/size
512K
这对应于 64K 的 L1 数据缓存、64K 的 L1 指令缓存和 512K 的 L2 指令+数据缓存。请注意,这比 更详细/proc/cpuinfo
,后者只说cache size : 512 KB
。这些目录中还有其他几个文件,cache/index#
内容更详细。
在使用这些文件之前,请阅读Documentation/ABI/README
和Documentation/ABI/testing/sysfs-devices-system-cpu
;特别是,它们似乎不是一个稳定的 ABI,因此将来可能会丢失。它们来自arch/x86/kernel/cpu/intel_cacheinfo.c
,用于cpuid
直接获取信息(这意味着,当存在时,它们应该比更可靠dmidecode
)。
答案3
查看'/proc/cpuinfo'
答案4
如果其他方法都失败了,只需使用 /proc/cpuinfo 或任何其他方法查找处理器的型号,然后在 Google 上查找规格。