লিনাক্স: পারফরম্যান্স গভর্নর ব্যবহারের সময় সিপিইউ ফ্রিকোয়েন্সি কেন ওঠানামা করে?


8

আমি বেঞ্চমার্কিংয়ের জন্য একটি ডেবিয়ান 8 amd64 মেশিন ব্যবহার করছি। পরীক্ষার সময়, আমি সিপিইউ একটি স্থির ফ্রিকোয়েন্সি (সম্ভবত সর্বোচ্চ সম্ভাব্য) এ কাজ করতে চাই। ফলাফলগুলিতে পরিবর্তনের উত্স হিসাবে এটি সিপিইউ ঘড়ির গতিকে অস্বীকার করবে।

কিছু পড়ার পরে, মনে হচ্ছে সঠিক কাজটি হ'ল সিপিইউ গভর্নরকে পরিবর্তন করা performance, যা এখানে লিনাক্স কার্নেল ডকুমেন্টেশনে বর্ণিত হয়েছে :

সিপিইউফ্রেইকের গভর্নর "পারফরম্যান্স" স্কেলিং_মিনি_ফ্রেইক এবং স্কেলিং_ম্যাক্স_ফ্রেইকের সীমানার মধ্যে সিপিইউকে স্থিতিশীলভাবে সর্বোচ্চ ফ্রিকোয়েন্সিতে সেট করে।

দুঃখের বিষয়, সম্পর্কে আরও বিশদ সরবরাহ করা হয় scaling_min_freqএবং scaling_max_freqসরবরাহ করা হয় না। আশা করা যায় এটি কোন ব্যাপার না, কারণ ব্যবহৃত সিপিইউ ফ্রিকোয়েন্সি হ'ল অন্তরালের সর্বাধিক মান।

সুতরাং আমি সিপুফেরিক সেট ব্যবহার করে এই গভর্নরকে সক্ষম করেছি:

$ বিড়াল / সিএস / ডিভাইস / সিস্টেম / সিপিইউ / সিপিইউ * / সিপুফেরিক / স্কেলিং_ভারভারর
কর্মক্ষমতা
কর্মক্ষমতা
কর্মক্ষমতা
কর্মক্ষমতা

এবং ভাল পরিমাপের জন্য, আমি বায়োজে টার্বো বুস্ট মোডটিও অক্ষম করেছি:

$ বিড়াল / সিএস / ডিভাইস / সিস্টেম / সিপিইউ / ইন্টেল_পস্টেট / নো_টুর্বো
1

পারফরম্যান্স গভর্নরের উপরের বর্ণনার ভিত্তিতে, আমি সিপিইউ ঘড়ির গতিতে কোনও ওঠানামা আশা করব না। তবুও যদি আমি বারবার চালনা cpufreq-infoকরি তবে দেখি ঘড়ির গতি ওঠানামা করছে:

p সিপুফেরিক-তথ্য | গ্রেপ 'বর্তমান সিপিইউ ফ্র'
  বর্তমান সিপিইউ ফ্রিকোয়েন্সি 4.00 গিগাহার্টজ।
  বর্তমান সিপিইউ ফ্রিকোয়েন্সি 3.99 গিগাহার্টজ।
  বর্তমান সিপিইউ ফ্রিকোয়েন্সি 4.00 গিগাহার্টজ।
  বর্তমান সিপিইউ ফ্রিকোয়েন্সি 4.00 গিগাহার্টজ।
p সিপুফেরিক-তথ্য | গ্রেপ 'বর্তমান সিপিইউ ফ্র'
  বর্তমান সিপিইউ ফ্রিকোয়েন্সি 4.00 গিগাহার্টজ।
  বর্তমান সিপিইউ ফ্রিকোয়েন্সি 4.00 গিগাহার্টজ।
  বর্তমান সিপিইউ ফ্রিকোয়েন্সি 4.00 গিগাহার্টজ।
  বর্তমান সিপিইউ ফ্রিকোয়েন্সি 3.96 গিগাহার্টজ।
p সিপুফেরিক-তথ্য | গ্রেপ 'বর্তমান সিপিইউ ফ্র'
  বর্তমান সিপিইউ ফ্রিকোয়েন্সি 4.00 গিগাহার্টজ।
  বর্তমান সিপিইউ ফ্রিকোয়েন্সি 4.00 গিগাহার্টজ।
  বর্তমান সিপিইউ ফ্রিকোয়েন্সি 4.00 গিগাহার্টজ।
  বর্তমান সিপিইউ ফ্রিকোয়েন্সি 3.94 গিগাহার্টজ।
p সিপুফেরিক-তথ্য | গ্রেপ 'বর্তমান সিপিইউ ফ্র'
  বর্তমান সিপিইউ ফ্রিকোয়েন্সি 4.01 গিগাহার্টজ।
  বর্তমান সিপিইউ ফ্রিকোয়েন্সি 4.00 গিগাহার্টজ।
  বর্তমান সিপিইউ ফ্রিকোয়েন্সি 4.00 গিগাহার্টজ।
  বর্তমান সিপিইউ ফ্রিকোয়েন্সি 3.98 গিগাহার্টজ।

এই ওঠানামাটি কি হার্ডওয়্যার, বিআইওএস, কার্নেল বা অন্য কোনও কারণের কারণে রয়েছে? সিপিইউ ফ্রিকোয়েন্সি এমনভাবে সেট করার কোনও উপায় আছে যে এটি একেবারেই ওঠানামা করে না?


আপনি কোন ধরণের সার্ভার হার্ডওয়্যার ব্যবহার করছেন? সেই হার্ডওয়্যারটির BIOS পাওয়ার এবং সিপিইউ পারফরম্যান্স সেটিংস কী কী?
ew white

এটি আসলে একটি আই 7 সিপিইউযুক্ত একটি ডেস্কটপ মেশিন। আমি dmesg এবং cpuinfo এখানে আপলোড করেছি: gist.github.com/vext01/73eea539eb041acf784b । পুনরায়: বায়োস সেটিংস, আমার মেশিনে গিয়ে দেখা দরকার। আপনার মনে যে কোনও নির্দিষ্ট সেটিং আছে?
এডিট ব্যারেট

এটি সাধারণ প্রস্টেট পরিবর্তনের তুলনায় "বেশি" ওঠানামা নয় ... :)
রজারডপ্যাক

উত্তর:


9

কিছু পরীক্ষা-নিরীক্ষার পরে, আমি আমার নিজের প্রশ্নের উত্তর দিতে পারি বলে মনে করি।

এই থ্রেডে উল্লিখিত হিসাবে , নির্দিষ্ট ইন্টেল হার্ডওয়্যারে, সিপিইউ ফ্রিকোয়েন্সি পরিচালনা করার দুটি উপায় রয়েছে:

  • প্রস্টেট ব্যবহার
  • নিয়মিত এসিপিআই ব্যবহার করা।

যখন প্রস্টেট ব্যবহার করা হয়, বিআইওএস-এর কিছুটা ঘড়ির গতিতে বলে, এবং মনে হয় এটিই ওঠানামার উত্স।

intel_pstate=disableকার্নেল আর্গুমেন্টগুলিতে সংযোজন করে আপনি প্রসেটটি জোর করে বন্ধ করতে পারেন (এর্গটি সম্পাদনা করুন /etc/default/grubএবং এতে যোগ করুন GRUB_CMDLINE_LINUX_DEFAULT। শেষ পর্যন্ত চালানো sudo update-grub)।

এটি করার পরে, আউটপুটটি cpufreq-infoদেখতে অনেক আলাদা লাগে এবং আমি আরও লক্ষ্য করি যে সিপিইউ গভর্নরদের একটি পৃথক সেট উপলব্ধ হয়ে উঠেছে (যেমন ondemandএখন উপলভ্য)।

সর্বাধিক গুরুত্বপূর্ণ, গভর্নরকে সেট করার পরে performance, ঘড়ির গতি এখন নির্ধারণ করা হয়েছে (আমার ক্ষেত্রে 4.00GHz)।

আপনি সন্ধান করতে পারেন /sys/devices/system/cpu/cpu*/cpufreq/scaling_driverযদি pstate বা ACPI সংক্রান্ত CPU- র আকার পরিবর্তন করতে ব্যবহার করা হচ্ছে নির্ধারণ। এই ফাইলগুলি মানগুলি ধরে নিতে পারে acpi-cpufreqবা intel_pstate


আরেকটি কৌশল: কার্নেল দ্বারা লোড হওয়া মডিউলগুলি তালিকাভুক্ত করতে ´lsmod´ ব্যবহার করুন, সিপিইউ স্পিড স্কেলিং / পি-রাজ্য / সি-রাজ্যগুলি / যাই হোক না কেন সম্পর্কিত যেকোন মডিউলকে কালো তালিকাভুক্ত করুন এবং মেশিনটি পুনরায় বুট করুন। "ব্ল্যাকলিস্ট কার্নেল মডিউল" অনুসন্ধান করুন।
রুফো এল মাগুফো


4

সমসাময়িক ইন্টেল প্রসেসরগুলির জন্য, ফ্রিকোয়েন্সি নিজে থেকেই প্রসেসর দ্বারা নিয়ন্ত্রিত হয় এবং সফটওয়্যারটির সাথে প্রকাশিত পি-রাজ্যগুলি পারফরম্যান্স স্তরের সাথে সম্পর্কিত। ফ্রিকোয়েন্সিটি একটি একক ফ্রিকোয়েন্সিতে সেট করা যেতে পারে এই ধারণাটি হ'ল ইন্টেল কোর প্রসেসরের জন্য কথাসাহিত্য । এমনকি যদি স্কেলিং ড্রাইভার একটি একক পি রাষ্ট্র নির্বাচন করে তবে প্রকৃত ফ্রিকোয়েন্সি প্রসেসরটি সঞ্চালিত হবে প্রসেসর নিজেই নির্বাচন করে। [1]

[1] https://www.kernel.org/doc/Docamentation/cpu-freq/intel-pstate.txt


মজাদার. সুতরাং, আমি যখন intel_pstate=disableকার্নেলটি পাস করি তখনও এটি কি কার্যকর হয় ? আমি যখন এটি করি তখন কি আমি leg "লিগ্যাসি মোড" কে ডাকছি?
এ্যাড ব্যারেট

1) নিশ্চিত না। Intel Architectures Software Developer's Manual.2) হ্যাঁ সঙ্গে পরামর্শ করা প্রয়োজন । পুনশ্চ. আপনিও খেলতে চাইতে পারেনx86_energy_perf_policy
SaveTheRbtz

তোমার মন্তব্যের জন্য ধন্যবাদ. যেহেতু আমি এখনও অনিশ্চিত, তাই আপাতত প্রশ্নটি উন্মুক্ত রেখে চলেছি। পরে কেউ পরিস্থিতি সম্পর্কে আলোকপাত করবে।
এ্যাড ব্যারেট

-1

আমি এই থ্রেডটি পড়েছি কারণ আমি খুব আমার সিপিইউতে একটি নির্দিষ্ট ফ্রিকোয়েন্সি সেট করতে চেয়েছিলাম যেহেতু পাখা আর কাজ করে না (অবশ্যই এই জিনিসগুলি ঘটে যখন আপনার বিদেশে ডাইভিং অবসর নেওয়ার জন্য কোনও হারিয়ে যাওয়া দ্বীপে হয়!) সুতরাং আমার বক্তব্যটি আরও সেট করা ছিল সর্বনিম্ন ফ্রিকোয়েন্সি (৮০০ মেগাহার্টজ) .. আমি পরিশেষে কনফিগারেশনের প্রতিটি সিপিইউর জন্য / sys / ডিভাইস / সিস্টেম / সিপিইউ / সিপিইউ * / সিপুফ্রেইক / এ স্কেলিং_ম্যাক্স_ফ্রেইক পরিবর্তন করতে পেরেছি এবং এখন এটি ফ্রিকোয়েন্সি ৮০০ মেগাহার্টজ থেকে সরানোর কথা থেকে .... 800Mhz। এটি কাজ করে এবং আমার ওভারহিটিং সমস্যার সমাধান করে ফেলেছিল যা আমি অভিজ্ঞতা অর্জন করেছি .. (ফ্রিকোয়েন্সিটি এখন 799 মেগাহার্টজ এবং সরানো হয় না যা সিপিইউ 50 ডিগ্রি সেন্টিগ্রেডের কাছাকাছি থাকতে দেয়!)

PS: আমি টার্বো মোডটিও অক্ষম (3,1Ghz)

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