Linux查看cache信息
Introduction
原文: Linux查看cache信息 - FindHao
本文介紹了如何在linux下查看cache的信息,並進行簡單的分析。
unix設計哲學
一切皆文件
Linux也很好的繼承了這個理念。
cpu cache
我的cpu:
Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz
cpu文件
文件夾/sys/devices/system/cpu就是對cpu的文件映射。進入以後,隨便進一個cpu核,可以看到cache文件夾,tree以後:
.n├── index0n│ ├── coherency_line_sizen│ ├── leveln│ ├── number_of_setsn│ ├── physical_line_partitionn│ ├── shared_cpu_listn│ ├── shared_cpu_mapn│ ├── sizen│ ├── typen│ └── ways_of_associativityn├── index1n│ ├── coherency_line_size n│ ├── leveln│ ├── number_of_setsn│ ├── physical_line_partitionn│ ├── shared_cpu_listn│ ├── shared_cpu_mapn│ ├── sizen│ ├── typen│ └── ways_of_associativityn├── index2n│ ├── coherency_line_sizen...同上一個文件夾n│ └── ways_of_associativityn└── index3n ├── coherency_line_sizen...同上一個文件夾n └── ways_of_associativityn
文件解釋
文件表示內容表示內容(中)coherency_line_sizesize of each cache line usually representing the minimum amount of data that gets transferred from memorycache line大小(有的地方叫cache block)levelrepresents the hierarchy in the multi-level cachecache屬於第幾層number_of_setstotal number of sets, a set is a collection of cache lines sharing the same indexcache set的數量physical_line_partitionnumber of physical cache lines sharing the same cachetag一個tag對應幾個cache line(竟然還可以對應多個???看來了解的還不夠全面)sizeTotal size of the cache總大小typetype of the cache – data, inst or unifiedcache的類型:數據、指令、統一,一般商用cpu只有L1劃分了指令cache和數據cacheways_of_associativitynumber of ways in which a particular memory block can be placed in the cache幾路組相連shared_cpu_listshared_cpu_map
(由於知乎編寫格式原因,表格無法顯示,請查看原文Linux查看cache信息 - FindHao)
shared_cpu_list && shared_cpu_map
解釋一下L3 的shared_cpu_map內容的格式:
00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,0000000fn
表面上看是2進位,其實是16進位表示,每個bit表示一個cpu,1個數字可以表示4個cpun截取0000000f的後4位,轉換為2進位表示
CPUid15-4忽略32100x000f的二進位表示…1111
這就表示L3是四個cpu共享的,cat shared_cpu_list:
0-3n
是0-3序號的cpu core。
組相連分析
針對L3的數據:nways_of_associativity: 12nsize: 6144K (Bytes)ncoherency_line_size: 64 (Bytes)nnumber_of_sets: 8192
驗證:
64*12*8192/1024 = 6144 KByten
Reference
玩轉CPU Topology
如何查看CPU的cache大小
Linux/include/linux/cacheinfo.h
CPU體系架構-Cache
理解cache
推薦閱讀:
※HTTP 緩存機制一二三
※緩存級數是否有上限?
※在校學生一枚,面對高性能伺服器開發、分散式系統、緩存系統等等。該如何最快最好的提升自己的技術水平呢?
※1G緩存的機械硬碟,拷貝文件是否只是前幾秒快一些?
※如何設計網站的緩存?