Làm cách nào để tìm kích thước bộ đệm L2 trong Linux?


33

Tôi muốn biết làm thế nào để tìm kích thước bộ đệm L2 trong Linux ...

Đối với kích thước bộ đệm L1, tôi đang làm như sau

pico /proc/cpuinfo

Kích thước bộ đệm L2 thì sao?

Câu trả lời:


29

cat /sys/devices/system/cpu/cpu0/cache/index2/size

hoặc kiểm tra dmidecode

hoặc dùng lshw


27

CHỈNH SỬA 3 : Heh, xin lỗi, chỉ cần làm sudo dmidecode -t cachevà nó sẽ hiển thị cho bạn thông tin bộ nhớ cache của CPU. Để cho biết phần bạn đang xem (L1 hoặc L2), hãy nhìn vào Configuration:dòng. Bạn muốn Configuration: Enabled, Not Socketed, Level 2.


17

Bạn nên kiểm tra như sau công cụ . Nó cung cấp thông tin chính xác nhất từ ​​tất cả các công cụ tôi đã thử. Đây là đầu ra phiên bản dòng lệnh:

~$ lstopo-no-graphics
Machine (7984MB)
  Socket L#0
    L2 L#0 (4096KB)
      L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0 + PU L#0 (P#0)
      L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1 + PU L#1 (P#1)
    L2 L#1 (4096KB)
      L1d L#2 (32KB) + L1i L#2 (32KB) + Core L#2 + PU L#2 (P#2)
      L1d L#3 (32KB) + L1i L#3 (32KB) + Core L#3 + PU L#3 (P#3)

Và đây là giao diện đồ họa:nhập mô tả hình ảnh ở đây


9

Chỉ cần sử dụng: lscpu

Đầu ra mẫu:

$ lscpu 
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 42
Stepping:              7
CPU MHz:               3401.000
BogoMIPS:              6784.57
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              8192K
NUMA node0 CPU(s):     0-3

lscpukhông chính xác trên một số CPU có cấu hình kỳ lạ. Ví dụ: CPU từ câu trả lời của tôi đưa ra các thông tin sau (đã bỏ qua một số thông tin): Họ CPU: 6 Kiểu: 15 Bước: 11 CPU MHz: 1866.742 NUMA node0 CPU (s): 0-3 CPU là Xeon L5320 với tổng số 8MB L2.
zloster

5

getconf

getconf -a | grep CACHE

cho:

LEVEL1_ICACHE_SIZE                 32768
LEVEL1_ICACHE_ASSOC                8
LEVEL1_ICACHE_LINESIZE             64
LEVEL1_DCACHE_SIZE                 32768
LEVEL1_DCACHE_ASSOC                8
LEVEL1_DCACHE_LINESIZE             64
LEVEL2_CACHE_SIZE                  262144
LEVEL2_CACHE_ASSOC                 8
LEVEL2_CACHE_LINESIZE              64
LEVEL3_CACHE_SIZE                  20971520
LEVEL3_CACHE_ASSOC                 20
LEVEL3_CACHE_LINESIZE              64
LEVEL4_CACHE_SIZE                  0
LEVEL4_CACHE_ASSOC                 0
LEVEL4_CACHE_LINESIZE              0

Hoặc cho một cấp độ duy nhất:

getconf LEVEL2_CACHE_SIZE

Điều thú vị về giao diện này là nó chỉ là một trình bao bọc xung quanh POSIX sysconf chức năng C (đối số bộ đệm là các phần mở rộng không phải POSIX), và do đó nó cũng có thể được sử dụng từ mã C.

Đã thử nghiệm trong Ubuntu 16.04.

hướng dẫn CPUID x86

Hướng dẫn CPUID x86 cũng cung cấp thông tin về bộ đệm và có thể được truy cập trực tiếp bởi userland: https://en.wikipedia.org/wiki/CPUID

glibc dường như sử dụng phương pháp đó cho x86. Tôi chưa xác nhận bằng cách gỡ lỗi / theo dõi hướng dẫn, nhưng nguồn cho 2.28 sysdeps/x86/cacheinfo.cthực hiện điều đó:

__cpuid (2, eax, ebx, ecx, edx);

TODO tạo một ví dụ C tối thiểu, lười biếng ngay bây giờ, được hỏi tại: https://stackoverflow.com/questions/14283171/how-to-receive-l1-l2-l3-cache-size-USE-cpuid-in cản-in-x86

ARM cũng có một cơ chế được xác định theo kiến ​​trúc để tìm kích thước bộ đệm thông qua các thanh ghi, chẳng hạn như Thanh ghi ID kích thước bộ đệm (CCSIDR), xem Hướng dẫn 11.6 "Khám phá bộ đệm " của lập trình viên ARMv8 để biết tổng quan.


4

dmesg | grep cache sẽ hiển thị thông tin liên quan đến L1 và L2 của bạn.


Hoặc dmesg (hoặc dmesg.boot) và tìm kiếm mô hình CPU. Sau đó google trên đó.
Hennes
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.