কমান্ড-লাইনের মাধ্যমে সিপিইউ ক্যাশের আকার দেখুন?


8

কমান্ড-লাইনটি ব্যবহার করে আমি আমার সিপিইউ ক্যাশের আকারটি কীভাবে দেখতে পারি?

আমি L1, L2 এবং L3 ক্যাশে তথ্য দেখতে চাই।

এছাড়াও, কেবল ক্যাশে থাকা তথ্যগুলি আউটপুট করা কি সম্ভব হবে , যাতে অন্য সমস্ত তথ্য ফিল্টার আউট হয়?

উত্তর:


11

lscpu আপনি অনুসন্ধান করছেন তথ্য সরবরাহ করবে।

lscpu | grep "cache"শুধুমাত্র ক্যাশে তথ্য ফিল্টার আউট। এর ফলে এমন কিছু হবে:

L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K

3

সেটির 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

এই ইন্টারফেসটি সম্পর্কে দুর্দান্ত জিনিসটি হ'ল এটি পসিক্স sysconfসি ফাংশনটির চারপাশে কেবল একটি মোড়ক (ক্যাশে আর্গুমেন্টগুলি নন-পসিক্স এক্সটেনশনগুলি) এবং তাই এটি সি কোড থেকেও ব্যবহার করা যেতে পারে।

উবুন্টু 16.04 এ পরীক্ষিত।

x86 সিপিইউডির নির্দেশনা

সিপিইউডিএক্স x86 নির্দেশে ক্যাশে সম্পর্কিত তথ্যও সরবরাহ করা হয় এবং এটি ব্যবহারকারীর মাধ্যমে সরাসরি অ্যাক্সেস করা যায়: https://en.wikedia.org/wiki/CPUID

glibc x86- এর জন্য এই পদ্ধতিটি ব্যবহার করছে বলে মনে হচ্ছে। পদক্ষেপ ডিবাগিং / নির্দেশের ট্রেসিং দ্বারা আমি নিশ্চিত করেছিলাম না, তবে ২.২৮ এর উত্সটি sysdeps/x86/cacheinfo.cতা করে:

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

টুডো এখন একটি স্বল্প ন্যূনতম সি উদাহরণ তৈরি করুন, এখানে জিজ্ঞাসা করা হয়েছে: https://stackoverflow.com

ক্যাশ সাইজ আইডি রেজিস্টার (সিসিএসআইডিআর) এর মতো রেজিস্টারগুলির মাধ্যমে ক্যাশে আকারগুলি খুঁজতে আর্মের একটি আর্কিটেকচার-সংজ্ঞায়িত প্রক্রিয়াও রয়েছে, একটি সংক্ষিপ্তসার জন্য এআরএমভি 8 প্রোগ্রামারগুলির ম্যানুয়াল 11.6 "ক্যাশে আবিষ্কার" দেখুন।


-1

সমস্ত বিদ্যমান ক্যাশে-সম্পর্কিত ফোল্ডারগুলির আকার তালিকাবদ্ধ করতে কমান্ডের নীচে সন্ধান করুন।

 for i in $(find /  -iname '*cache*'); do du -sh $i ; done 2> /dev/null | grep 'G\|M\|K\|B'| nl
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.