সিপুইনফো_কুর_ফ্রেইক এবং / প্রোক / সিপুইনফো কেন বিভিন্ন সংখ্যা জানায়?


13

যখন আমি করি

sudo watch -n1 cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq

আমি 1.8 - 2.7 গিগাহার্টজ পাই। এটি কখনই 2.7 এর উপরে যায় না।

এবং যখন আমি না

watch -n1 "cat /proc/cpuinfo | grep MHz"

আমি 768 মেগাহার্জ পেয়েছি - 1.8 গিগাহার্টজ। এটি কখনই 1.8 এর উপরে যায় না।

কেউ কি জানেন কী চলছে?

উত্তর:


14

বেশিরভাগ সিপিইউ'র মধ্যে এখন ব্যাটারি / বিদ্যুতের ব্যবহার বাঁচাতে সহায়তা করতে তাদের গতি সামঞ্জস্য করার ক্ষমতা অন্তর্ভুক্ত। একে সাধারণত সিপিইউ ফ্রিকোয়েন্সি স্কেলিং বলে । সিপিইউর রিয়েলটাইম গতি এর দ্বারা প্রতিবেদন করা হয়েছে:

$ 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? এটা পরিষ্কারভাবে না! আমার প্রশ্নের হৃদয় এখনও অমীমাংসিত রয়ে গেছে। আমি এই সরঞ্জামটি উন্মোচন করেছি যা কোনওরকম "সত্যিকারের ফ্রিকোয়েন্সি" প্রতিবেদন করার জন্য উপস্থিত হয় তবে আমি নিশ্চিত না যে এটি সঠিকভাবে কাজ করে। এটি এর অ্যালগরিদমের জন্য কিছু উত্স সরবরাহ করে, তবে এই তাত্পর্যটির জন্য সত্যিই দুর্দান্ত ব্যাখ্যা সরবরাহ করে না ।
ওলফটোন

লাইনগুলি /sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_cur_freqসর্বাধিক গতি দেখায়, যদিও তারা নাম হিসাবে বর্তমান গতি বোঝায়, এই যে সংযোগটি আপনি ঠিক জিজ্ঞাসা করছেন, তাই না? আমার সিস্টেম এগুলিও তাদের দেখায়।
slm

: আপনি ফ্রিকোয়েন্সি স্কেলিং আপনি চালু করেছেন যখন প্রকৃত cpu 'র ফ্রিকোয়েন্সি পেতে এই ব্যবহার করা উচিত/sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
SLM

2
দ্রষ্টব্য: কার্নেল ৪.১13, যেহেতু cat /proc/cpuinfo | grep MHzআর বর্তমান ঘড়ির গতি আর দেয় না । কার্নেল বাগজিলাতে তারা বলে যে এটি ইচ্ছাকৃত। Bugzilla.kernel.org/show_bug.cgi?id=197009 দেখুন । এটি এখানেও উল্লেখ করা হয়েছে: phoronix.com/…
Marc.2377

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.