Linux下查询CPU 缓存的工具

在Linux下能够使用例如以下工具查询CPU缓存:

方式1:

$ lscpu

L1d cache:             32K <span style="white-space:pre">	</span>(一级数据缓存)
L1i cache:             32K <span style="white-space:pre">	</span><span style="font-family: Arial, Helvetica, sans-serif;">(一级指令缓存)</span>
L2 cache:              256K <span style="white-space:pre">	</span>(二级缓存)
L3 cache:              8192K<span style="white-space:pre">	</span>(三级缓存)


方式2:

$ cat /sys/devices/system/cpu/cpu0/cache/index0/size
32K
$ cat /sys/devices/system/cpu/cpu0/cache/index0/level
1
$ cat /sys/devices/system/cpu/cpu0/cache/index1/size
32K
$ cat /sys/devices/system/cpu/cpu0/cache/index1/level
1
$ cat /sys/devices/system/cpu/cpu0/cache/index2/size
256K
$ cat /sys/devices/system/cpu/cpu0/cache/index2/level
2
$ cat /sys/devices/system/cpu/cpu0/cache/index3/size8192K
$ cat /sys/devices/system/cpu/cpu0/cache/index3/level
3

方式3:

$ sudo dmidecode -t cache
可是结果与上述的有出路, 显示的L1缓存是256kB, L2缓存是1024 kB, 算上8核, 也与实现不符.

可能程序自身有点问题, 不建议用dmidecode.


# dmidecode 2.12
SMBIOS 2.7 present.

Handle 0x003B, DMI type 7, 19 bytes
Cache Information
	Socket Designation: CPU Internal L1
	Configuration: Enabled, Not Socketed, Level 1
	Operational Mode: Write Back
	Location: Internal
	Installed Size: 256 kB
	Maximum Size: 256 kB

Handle 0x003C, DMI type 7, 19 bytes
Cache Information
	Socket Designation: CPU Internal L2
	Configuration: Enabled, Not Socketed, Level 2
	Operational Mode: Write Back
	Location: Internal
	Installed Size: 1024 kB
	Maximum Size: 1024 kB

Handle 0x003D, DMI type 7, 19 bytes
Cache Information
	Socket Designation: CPU Internal L3
	Configuration: Enabled, Not Socketed, Level 3
	Operational Mode: Write Back
	Location: Internal
	Installed Size: 8192 kB
	Maximum Size: 8192 kB


方式4:

$ cat /proc/cpuinfo 

cache size	: 8192 KB

这个仅仅是显示出 L3 cache的大小, 也并不准确.

原文地址:https://www.cnblogs.com/gcczhongduan/p/5182696.html