Ubuntu में L1, L2, L3 कैश और रैम के आकार को जानने का कोई तरीका है?


जवाबों:


12

सीपीयू जानकारी

Lscpu कमांड का उपयोग करें :

$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            15
Model:                 6
Stepping:              5
CPU MHz:               2400.000
BogoMIPS:              6000.33
L1d cache:             16K
L2 cache:              2048K
NUMA node0 CPU(s):     0,1

सूचीबद्ध जानकारी प्रति सीपीयू-कोर है।

मेमोरी की जानकारी

नहीं है मुक्त आदेश (-h मानव पठनीय रूप में परिणाम है, यानी GiB बल्कि तो बाइट्स देता है):

$ free -h
             total       used       free     shared    buffers     cached
Mem:          2.0G       390M       1.6G        10M        15M       160M
-/+ buffers/cache:       215M       1.7G
Swap:         2.0G         0B       2.0G

3

इससे आपको अपने कैश की जानकारी मिल जाएगी। सॉकेट पदनाम आपको बताएगा कि अनुभाग में किस कैश को संदर्भित किया जा रहा है।

sudo dmidecode -t cache

RAM के लिए देखने के लिए कुछ चीजें हैं लेकिन meminfo को यह करना चाहिए। मैंने यहाँ grep का उपयोग केवल कुल / निःशुल्क दिखाने के लिए किया है लेकिन आप पूरी चीज़ देखने के लिए कम या बिल्ली का उपयोग कर सकते हैं। यह केवल आकार की तुलना में मेमोरी आकार और उपयोग पर बहुत अधिक जानकारी दिखाता है।

grep Mem /proc/meminfo

1

निम्नलिखित कमांड के साथ jkabrams के उत्तर के आधार पर और "कैश" को फ़िल्टर करने से, आपके द्वारा दिखाए गए प्रत्येक कैश आइटम।

lscpu | grep cache

और RAM:

free -h

RAM, प्रक्रियाओं और इसके बारे में अधिक जानकारी के लिए आप अपने डिस्ट्रो पर htop का उपयोग कर सकते हैं। इसे ubuntu पर इस तरह स्थापित करें।

sudo apt-get install htop

0

sysfs

for d in /sys/devices/system/cpu/cpu0/cache/index*;
  do tail -c+1 $d/{level,type,size}
  echo
done

देता है:

==> /sys/devices/system/cpu/cpu0/cache/index0/level <==
1

==> /sys/devices/system/cpu/cpu0/cache/index0/type <==
Data

==> /sys/devices/system/cpu/cpu0/cache/index0/size <==
32K

==> /sys/devices/system/cpu/cpu0/cache/index1/level <==
1

==> /sys/devices/system/cpu/cpu0/cache/index1/type <==
Instruction

==> /sys/devices/system/cpu/cpu0/cache/index1/size <==
32K

==> /sys/devices/system/cpu/cpu0/cache/index2/level <==
2

==> /sys/devices/system/cpu/cpu0/cache/index2/type <==
Unified

==> /sys/devices/system/cpu/cpu0/cache/index2/size <==
256K

==> /sys/devices/system/cpu/cpu0/cache/index3/level <==
3

==> /sys/devices/system/cpu/cpu0/cache/index3/type <==
Unified

==> /sys/devices/system/cpu/cpu0/cache/index3/size <==
8192K

getconf

getconf -a | grep CACHE

देता है:

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

या एकल स्तर के लिए:

getconf LEVEL2_CACHE_SIZE

इस इंटरफ़ेस के बारे में अच्छी बात यह है कि यह POSIX sysconfC फ़ंक्शन के चारों ओर सिर्फ एक आवरण है (कैश तर्क गैर-पॉसिक्स एक्सटेंशन हैं), और इसलिए इसका उपयोग C कोड से भी किया जा सकता है।

उबंटू 16.04 में परीक्षण किया गया।

x86 CPUID निर्देश

CPUID x86 निर्देश भी कैश जानकारी प्रदान करता है, और उपयोगकर्ता द्वारा सीधे एक्सेस किया जा सकता है: https://en.wikipedia.org/wiki/CPUID

glibc x86 के लिए उस विधि का उपयोग करने लगता है। मैंने स्टेप डिबगिंग / इंस्ट्रक्शन ट्रेसिंग द्वारा पुष्टि नहीं की है, लेकिन 2.28 के लिए स्रोत sysdeps/x86/cacheinfo.cऐसा करता है:

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

TODO एक न्यूनतम C उदाहरण बनाएँ, जो अभी आलसी है, पर पूछा गया: /programming/14283171/how-to-receive-l1-l2-l3-cache-size-cpuid-instruction-in-x86

एआरएम में भी कैश-साइज आईडी रजिस्टर (CCSIDR) जैसे रजिस्टरों के माध्यम से कैश आकार खोजने के लिए एक वास्तुकला-परिभाषित तंत्र है, एक अवलोकन के लिए ARMv8 प्रोग्रामर्स मैनुअल 11.6 "कैश डिस्कवरी" देखें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.