কীভাবে লিনাক্স কনটেক্সট-সুইচ ফ্রিকোয়েন্সি পরিবর্তন করবেন?


17

লিনাক্স (লিনারো, উবুন্টু, ডেবিয়ান) প্রসঙ্গ-স্যুইচ ফ্রিকোয়েন্সি পরিবর্তন করা কীভাবে সম্ভব?

আমি আরও দক্ষ একটির জন্য কম-প্রতিক্রিয়াশীল সিস্টেমের ব্যবসায়ের জন্য ঠিক am

এডিআইটি 1: আমার একটি প্রধান প্রক্রিয়া রয়েছে যা আমি যত তাড়াতাড়ি দ্রুত চালাতে চাই (প্রতি সেকেন্ডে সর্বাধিক ঘড়ির চক্র), তাই আমি প্রসঙ্গ-স্যুইচ ফ্রিকোয়েন্সি হ্রাস করার চিন্তাভাবনা করেছি (= টাইমলাইস বাড়িয়ে)। প্রশ্নটি এটি কীভাবে করা যায় তা এবং এটির একটি উল্লেখযোগ্য প্রভাব থাকবে। আমি কি প্রসঙ্গের সুইচের ব্যয় গণনা করতে পারি? অর্থ, আমি যদি অনুমান করতে পারি যে আমি যদি টাইমলাইস দুটি করে বাড়িয়ে থাকি তবে আমি যে প্রধান প্রক্রিয়াটি যত্ন করি তার জন্য আমার পারফরম্যান্স লাভ কী হবে?


1
আমি এই সেটিংটির প্রভাবটি সর্বনিম্ন এবং কেবলমাত্র আপনার যদি সিপিইউ কোরগুলির চেয়ে বেশি প্রক্রিয়া চলমান থাকে তবে প্রাসঙ্গিক বলে আশা করব। যদি অন্য কোনও কাজ নির্দিষ্ট সিপিইউয়ের জন্য অপেক্ষা না করে তবে একটি স্বল্প সময়ের টাস্ক স্যুইচ টাইমার সেট করার দরকারও নেই, কারণ যে কোনও কিছু যা অন্য টাস্ককে চালনার যোগ্য করে তোলে তা হ'ল সিস্টেম কল বা একটি হার্ডওয়্যার বিঘ্নিত, উভয়ই সিপিইউ কার্নেলের কাছে ফেরত দেয়।
সাইমন রিখটার

এখানে মূর্খ হওয়ার জন্য দুঃখিত, তবে কেউ কি এই প্রশ্নের প্রসঙ্গে 'কনটেক্সট-স্যুইচ ফ্রিকোয়েন্সি' বলতে কী বোঝাতে পারেন?
ব্যবহারকারী 1717828

@ সোর্সজেডি আমার EDIT1 দেখুন - আমি যখন প্রসঙ্গের স্যুইচ ফ্রিকোয়েন্সি হ্রাস করি তখন% এ থ্রুপুট উন্নতি অনুমান করতে পারি?
নাদভ বি

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

উত্তর:


17

যদি আপনার টাস্কটি কেবলমাত্র নির্দিষ্ট সিপিইউতে সময় অনুরোধ করার প্রক্রিয়া হয় তবে কার্যগুলির মধ্যে কোনও প্রসঙ্গের স্যুইচ হবে না :-)। কিন্তু সিপিইউ এখনও বাধাগ্রস্থ হতে পারে যার ফলে কার্নেল এবং পিছনে প্রসঙ্গের স্যুইচ হয়। এবং এর একটি সম্ভাব্য কারণ হ'ল প্রাক-সমাপ্তি টাইমার, এই সিপিইউতে চালানোর জন্য অন্য কোনও কাজ আছে কিনা তা পরীক্ষা করে ...

লিনাক্স পারেন 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/ )।


কার্নেল.স্যাচড_আরআর_টাইমসিস_এম কি?
নাদভ বি

1
@ নাডাভবি যদি আপনি রিয়েলটাইম শিডিউল_আরআর কাজগুলি ব্যবহার করেন তবে তাই বলুন। এটি একটি বিশেষজ্ঞ বিষয়। আপনি যদি না হন তবে না :-)।
সোর্সজেডি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.