যদি আপনার টাস্কটি কেবলমাত্র নির্দিষ্ট সিপিইউতে সময় অনুরোধ করার প্রক্রিয়া হয় তবে কার্যগুলির মধ্যে কোনও প্রসঙ্গের স্যুইচ হবে না :-)। কিন্তু সিপিইউ এখনও বাধাগ্রস্থ হতে পারে যার ফলে কার্নেল এবং পিছনে প্রসঙ্গের স্যুইচ হয়। এবং এর একটি সম্ভাব্য কারণ হ'ল প্রাক-সমাপ্তি টাইমার, এই সিপিইউতে চালানোর জন্য অন্য কোনও কাজ আছে কিনা তা পরীক্ষা করে ...
লিনাক্স পারেন cpu 'র উপর কোনো অগ্রক্রয়াধিকার টাইমার ইন্টারাপ্ট এড়ানোর যখন তা করার কোনো কারণ থাকবে না। দেখুন CONFIG_NO_HZ_FULL
। এই বৈশিষ্ট্যটি ব্যবহার করতে, কার্নেলটি তৈরি করার সময় এটি সক্ষম করা আবশ্যক এবং এটি একটি বুট বিকল্প ব্যবহার করে সক্ষম করা আবশ্যক।
ডিফল্টরূপে, কোনও সিপিইউ অভিযোজিত-টিক্স সিপিইউ হবে না। "Nohz_full =" বুট পরামিতি অ্যাডাপটিভ-টিক্স সিপিইউ নির্দিষ্ট করে। উদাহরণস্বরূপ, "nohz_full = 1,6-8" বলছে যে সিপিইউ 1, 6, 7, এবং 8 টি অ্যাডাপটিভ-টিক্স সিপিইউ হতে হবে। নোট করুন যে আপনাকে সমস্ত সিপিইউকে অ্যাডাপটিভ-টিক সিপিইউ হিসাবে চিহ্নিত করা থেকে নিষেধ করা হয়েছে [...]
LWN.net বলছে "অ্যাঙ্গো মোলনার অনুসারে, সিপিইউর সময়ের প্রায় 1% সময় সাশ্রয় পাবে" অ্যাডাপটিভ-টিক্স সিপিইউগুলির জন্য। কার্নেল নথিটি বলছে এটির ছয়টি পৃথক ব্যয় রয়েছে এবং "জ্ঞান সমস্যাগুলি" এর একটি তালিকাও রয়েছে।
এই লাভটি তুলনামূলকভাবে ছোট, বিশেষ করে একাধিক কাজের মধ্যে প্রসঙ্গ-সুইচগুলির ফ্রিকোয়েন্সি হ্রাস করার সম্ভাব্য থ্রুপুট লাভের সাথে তুলনায়, যেমন এই উত্তরে উল্লেখ করা হয়েছে: লিনাক্স সিপিইউ শিডিউলারের ব্যবহৃত টাইম-স্লাইসের দৈর্ঘ্য কীভাবে পরিবর্তন করবেন?
ছোট মুদ্রণ: এই পরিমাপগুলি প্রাক-তারিখ স্পেকটার, মেল্টডাউন, কেপিটিআই এবং এক্স 86 এএসআইডি সমর্থন করে :-( এবং আমি অনুমান করি যে তারা কিছুটা পুরানো হার্ডওয়্যারের ক্ষেত্রেও প্রযোজ্য a কোনও কার্নেল বিশেষজ্ঞকে জিজ্ঞাসা করুন বা কনটেক্সট-সুইচগুলির ব্যয় কীভাবে আপনার নিজের পরিমাপ চালান? আপনার নির্দিষ্ট কার্নেল সংস্করণ এবং হার্ডওয়্যার পরিবর্তিত হয়েছে ... পিটিআই-র মূলত ASID দ্বারা প্রশমিত হওয়ার কথা ছিল, যে সফ্টওয়্যারগুলি যে ঘন ঘন ঘন ঘন কার্নেলে কল করে, তার মূল উদাহরণটি ডাটাবেস। তবে আমি সংখ্যার উপর খুব বেশি আঁকড়ে ধরতে পারি না। ।
মূল আরএফসি প্যাচে মোলনার আশা ছিল সময়ের সাথে সাথে এটি "বেশিরভাগ লিনাক্স ডিস্ট্রোস দ্বারা সক্ষম হয়ে উঠবে"। আমি লক্ষ্য করেছি ফেডোরা 28 NO_HZ_FULL
সমর্থন সহ নির্মিত একটি ডিফল্ট কার্নেল সরবরাহ করে। দেবিয়ান 9 তবে তা করে না।
সাম্প্রতিককালে, লিনাক্স ভি 4.17 সিপিইউগুলি থেকে একটি অবশিষ্ট 1 হার্জ টাইমার টিক সরিয়ে দেয়nohz_full
। আমি কল্পনা করি যে থ্রুপুটটিতে প্রভাবটি খুব ছোট :-), তবে আমি NO_HZ_FULL
যখন সিপিইউতে একাধিক চলমান প্রক্রিয়াগুলি উপকারের স্থিতি অনুসরণ করার চেষ্টা করছিলাম -
আমরা একবার 0 হার্জেডে পৌঁছানোর পরে আমরা nr_running> = 2 থেকে পর্যায়ক্রমিক টিক অনুমানটি অপসারণ করতে পারি, তবুও সময়সূচী_তলাবদ্ধতার সীমাবদ্ধতার জন্য আমাদের যতবার প্রয়োজন ততবার ব্যস্ততার মধ্যে ব্যয় করে - এনআর_আর্নিংয়ের উপর নির্ভর করে প্রতি 4-40 মেসি একবারে ।
প্রাক-উত্সাহটি ইতিমধ্যে v2.6.25-rc1 এ পৃথক, আরও সুনির্দিষ্ট টিক ব্যবহার শুরু করে 8f4d37ec073c, "সময়সূচী: উচ্চ-রেজিমিশন প্রিম্পশন টিক" ব্যবহার করা শুরু করার ফলে এটি কিছুটা বিভ্রান্তিকর । একই LWN.net নিবন্ধে এই মন্তব্যের মাধ্যমে পাওয়া গেছে: https://lwn.net/Articles/549754/ )।