বেশিরভাগ সিপিইউ'র মধ্যে এখন ব্যাটারি / বিদ্যুতের ব্যবহার বাঁচাতে সহায়তা করতে তাদের গতি সামঞ্জস্য করার ক্ষমতা অন্তর্ভুক্ত। একে সাধারণত সিপিইউ ফ্রিকোয়েন্সি স্কেলিং বলে । সিপিইউর রিয়েলটাইম গতি এর দ্বারা প্রতিবেদন করা হয়েছে:
$ sudo cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
পরম (সর্বাধিক) সিপিইউ গতি এই দ্বারা রিপোর্ট করা হচ্ছে:
$ cat /proc/cpuinfo
বিশেষতঃ এই লাইন:
model name : Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz
যে লাইনটি দেখায় cpu MHz
তা আপনার সিপিইউর সর্বাধিক গতি প্রদর্শন করে না । এই মানটি আপনার বর্তমান গতি। কোনও i7 বা i5 এর মতো কোনও মাল্টি-কোর সিস্টেমে আপনি এই আদেশটি দিয়ে এটি দেখতে পারেন:
$ cat /proc/cpuinfo |grep MHz
cpu MHz : 1199.000
cpu MHz : 1199.000
cpu MHz : 1199.000
cpu MHz : 2667.000
তবে আপনি এই আদেশটি দিয়ে পরম (সর্বোচ্চ) গতি দেখতে পারবেন:
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
CPU(s): 4
Thread(s) per core: 2
Core(s) per socket: 2
CPU socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 37
Stepping: 5
CPU MHz: 2667.000
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
NUMA node0 CPU(s): 0-3
দ্রষ্টব্য: এটিতে থাকা কোরগুলির সংখ্যা NUMAS node0 CPU(s)
4, অর্থাৎ 0,1,2 এবং 3।
সিপিইউ স্কেলিং এবং পরিচালনা?
আপনার সিস্টেমটি যে মোডে রয়েছে তাকে স্কেলিং গভর্নর বলা হয়। গাড়িতে একজন গভর্নর এর মতো। আপনি এই আদেশটি সহ কোনটি উপলব্ধ তা দেখতে পারেন:
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
powersave ondemand userspace performance
আপনি বর্তমানে কোনটি সক্রিয় তা দেখতে পারেন:
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
ondemand
দ্রষ্টব্য: আমি যে কমান্ডগুলি দেখছি তার মধ্যে কেবল 1 ম সিপিইউ, অন্তর্ভুক্ত রয়েছে cpu0
। হয় আপনি *
সমস্ত কোর দেখতে পাথের পরিবর্তে বিকল্পটি বেছে নিতে পারেন বা আপনি বেছে বেছে দেখতে পারেন cpu1
ইত্যাদি
আপনি আপনার গভর্নরের প্রোফাইলের জন্য উপলব্ধ সর্বোচ্চ এবং সর্বনিম্ন সিপিইউ গতি দেখতে পাবেন:
$ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
2667000
$ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
1199000
আরও বিশদ এই শিরোনামে পাওয়া যায়, শিরোনাম: সিপুফ্রেইক সহ লিনাক্সে সিপিইউ ফ্রিকোয়েন্সি স্কেলিং ।
তাহলে সিপুইনফো_কুর_ফ্রেইক সম্পর্কে কী?
এই প্যারামিটারটির সিপিইউর সুনির্দিষ্টকরণ এবং এটি বর্তমানে কোন প্রোফাইলে রয়েছে তার স্পেসিফিকেশনের সাথে আরও অনেক কিছু করতে হবে, বর্তমানে সিপিইউ কীভাবে কাজ করছে সে সম্পর্কে কোনও উপকারীতা নয়। প্রকৃত অপারেশনাল টেলমেট্রির জন্য আমি scaling_*
কার্নেল টিউনবেলগুলি ব্যবহার করব ।
উদাহরণ
আমি সিপিইউ কোরগুলির কলাম অনুসারে দেখানোর জন্য নীচের স্ক্রিপ্টটি একসাথে রেখেছি যাতে বিভিন্ন কার্নেল টিউনেবলগুলি দেখতে কেমন তা আরও সহজেই দেখা যায়:
#!/bin/bash
nthCore=$(lscpu|grep node0|cut -d"-" -f2)
for i in /sys/devices/system/cpu/cpu0/cpufreq/{cpuinfo,scaling}_*; do
pname=$(basename $i)
[[ "$pname" == *available* ]] || [[ "$pname" == *transition* ]] || \
[[ "$pname" == *driver* ]] || [[ "$pname" == *setspeed* ]] && continue
echo "$pname: "
for j in `seq 0 $nthCore`;do
kparam=$(echo $i | sed "s/cpu0/cpu$j/")
sudo cat $kparam
done
done | paste - - - - - | column -t
আপনি যখন এটি চালান আপনি নিম্নলিখিত আউটপুট পাবেন:
$ ./cpuinfo.bash
cpuinfo_cur_freq: 2667000 2667000 2667000 2667000
cpuinfo_max_freq: 2667000 2667000 2667000 2667000
cpuinfo_min_freq: 1199000 1199000 1199000 1199000
scaling_cur_freq: 2667000 2266000 1333000 2667000
scaling_governor: ondemand ondemand ondemand ondemand
scaling_max_freq: 2667000 2667000 2667000 2667000
scaling_min_freq: 1199000 1199000 1199000 1199000
আপনি দেখতে পাচ্ছেন যে scaling_cur_freq
টিউনটেবল মূল # 1 এবং 2 তে মন্দা দেখাচ্ছে।
/proc/cpuinfo
একই হিসাবে রিপোর্ট করবেন নাcpuinfo_cur_freq
? এটা পরিষ্কারভাবে না! আমার প্রশ্নের হৃদয় এখনও অমীমাংসিত রয়ে গেছে। আমি এই সরঞ্জামটি উন্মোচন করেছি যা কোনওরকম "সত্যিকারের ফ্রিকোয়েন্সি" প্রতিবেদন করার জন্য উপস্থিত হয় তবে আমি নিশ্চিত না যে এটি সঠিকভাবে কাজ করে। এটি এর অ্যালগরিদমের জন্য কিছু উত্স সরবরাহ করে, তবে এই তাত্পর্যটির জন্য সত্যিই দুর্দান্ত ব্যাখ্যা সরবরাহ করে না ।