寻找一个命令来检查 Unix 系统上的片上 L3 缓存大小

寻找一个命令来检查 Unix 系统上的片上 L3 缓存大小

我正在寻找一个命令来检查 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/READMEDocumentation/ABI/testing/sysfs-devices-system-cpu;特别是,它们似乎不是一个稳定的 ABI,因此将来可能会丢失。它们来自arch/x86/kernel/cpu/intel_cacheinfo.c,用于cpuid直接获取信息(这意味着,当存在时,它们应该比更可靠dmidecode)。

答案3

查看'/proc/cpuinfo'

答案4

如果其他方法都失败了,只需使用 /proc/cpuinfo 或任何其他方法查找处理器的型号,然后在 Google 上查找规格。

相关内容