সিগ্রুপগুলি কীভাবে নন-সিগ্রুপযুক্ত প্রক্রিয়াগুলির সাথে যোগাযোগ করে?


12

আমার একটি সিঙ্গল কোর মেশিনে 3 টি প্রক্রিয়া রয়েছে। প্রতিটি প্রক্রিয়া হুবহু একই রকম হয় এবং সিপিইউ যত তাড়াতাড়ি জ্বলতে পারে (টাইট লুপ)। তাদের মধ্যে দুটি ( Aএবং B) আলাদা আলাদা গ্রুপে সিজেেক্সেক দিয়ে 512 এবং 512 সেট শেয়ারের সাথে Cচালু হয়েছে। তৃতীয় ( ) নিয়মিতভাবে চালু করা হয়েছে, সিজেেক্সেক দিয়ে নয়।

একবার সব শেষ হয়ে গেলে, Cসিপিইউয়ের 66% পাওয়া যায় Aএবং B33% বিভক্ত হয়। আমি যদি Cতখন হত্যা করি Aএবং Bপ্রত্যেকে 50% (আশানুরূপ হিসাবে) পাই

কেন C66% পাওয়া যায়? আমি এই দৃশ্যে প্রত্যেকে 33% বা সম্ভবত 50% (সি), 25% (এ) এবং 25% (বি) আশা করতাম। Cআমি কীভাবে গণিত করি না কেন। 66% কাজ করে না।

সাধারণভাবে, আমি বুঝতে চাই যে কীভাবে প্রক্রিয়াগুলি সম্পদ ভাগ করে নেওয়ার ক্ষেত্রে cgexecপ্রবর্তন প্রক্রিয়াগুলির সাথে ইন্টারেক্ট ছাড়াই চালু হয়েছিল cgexec(বিশেষত সিপিইউ, তবে এটি আরও জটিল না হলে আরও সাধারণ উত্তর প্রশংসা করা হবে)।


প্রথমত, আমি অবাক হয়েছি আপনি সিপিইউ ব্যবহারের শতাংশটি কীভাবে পরিমাপ করবেন? আপনি এ, বি এবং সি চালানোর অগ্রাধিকারগুলি কী কী?
কেউববুফিটোইচিজ

আমি বিশ্বাস করি যে আমি সিপিইউ ব্যবহারের সাথে পরিমাপ topকরছিলাম এবং আমি বিশ্বাস করি সেগুলি মোটামুটি সহজভাবে একটি কমান্ড প্রম্পট থেকে শুরু করা হয়েছিল: cgexec -g cpu:foo myprogramএবং ./myprogram। এটি একটি সময় হয়েছে তাই আমি নিশ্চিতভাবে মনে নেই।
মাইকা জোল্টু

এটি কি এমন ঘটনা হতে পারে যে মাইপ্রোগ্রাম একক থ্রেড / প্রক্রিয়ার চেয়ে বেশি ব্যবহার করে? আপনি কী এখনও এই সমস্যা সমাধানে আগ্রহী?
কেউববুফিটোইচিজ

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

রেডহ্যাট থেকে এই পৃষ্ঠাটি এখানে সহায়তা হতে পারে। cpu.sharesএকটি খুব অদ্ভুত কনফিগারেশন বিকল্প; আমি cpuset.cpusপরিবর্তে যদি সম্ভব হয় তবে জিনিসগুলি সিপিইউ দ্বারা বিভক্ত করার পরামর্শ দিচ্ছি ।
ওয়াইল্ডকার্ড

উত্তর:


3

সিগ্রুপগুলি শ্রেণিবদ্ধ এবং এগুলি সমস্ত উপ-প্রক্রিয়াগুলির দ্বারা উত্তরাধিকারসূত্রে প্রাপ্ত। সুতরাং সমস্ত প্রক্রিয়া অবশ্যই কিছু সিগ্রুপে থাকা উচিত। ডিফল্টরূপে এটি মূল সিগ্রুপ এবং ডিফল্টরূপে এটির 1024 শেয়ার রয়েছে যা আপনার উদাহরণে এ এবং বি হিসাবে দ্বিগুণ।

সিপিইউ সময়টি সিপিইউ.সারেসগুলিতে নির্ধারিত ওজন অনুসারে বিটওয়ান সিগ্রুপগুলিতে ভাগ করা হয়।

যদি এ এর ​​1024 শেয়ার এবং বি 512 এবং সি 256 এবং ডি 256 থাকে, সিপিইউ সময় বিতরণ এ - 50%, বি - 25%, সি এবং ডি 12,5% হতে পারে।


সুতরাং সিজেেক্সেক দিয়ে যে কোনও প্রক্রিয়া চালু করা হয়নি তা হ'ল মূল গ্রুপে 1024 শেয়ার রয়েছে, সমস্ত তাত্ক্ষণিক শিশুদের মধ্যে সমানভাবে বিভক্ত। এই ধরনের একটি তাৎক্ষণিক শিশু কলিং দ্বারা উত্পন্ন নির্ধারিত সঠিক cgroup- হয় cgexec। সুতরাং অ- cgexecপ্রক্রিয়াটি 50% পাবে এবং সিগ্রুপযুক্ত প্রক্রিয়াগুলি সমস্ত অবশিষ্ট অংশ 50% ভাগ করবে। সিগ্রুপযুক্ত প্রক্রিয়াগুলির মধ্যে তারা তাদের 50% সমানভাবে ভাগ করে দেয় যার অর্থ উভয়ই 25% হয়। এটি বোধগম্য হবে, তবে এটি আমি যে আচরণটি পর্যবেক্ষণ করেছি তা নয়। আমি যা দেখেছি তা হ'ল 66%, 33% এবং 33%। আপনি আরও বিশদ এবং সম্ভবত উদাহরণ বন্টন অন্তর্ভুক্ত উত্তর আপডেট করতে পারেন?
মিকাহ জোল্টু

ওহ, আমি মনে করি আমি দেখছি। ওএসে যে কোনও প্রক্রিয়া cgexec1024 টি শেয়ার ছাড়াই চালু হয় । যে কোনও প্রক্রিয়া প্রবর্তন করে cgexecসেগুলি নির্দিষ্ট করে শেয়ারগুলি পায়। সুতরাং এই ক্ষেত্রে, একটি প্রক্রিয়া 1024 শেয়ার পায় এবং অন্য দু'জনে 512 পায়, যার ফলশ্রুতি আমি দেখেছি। উদাহরণস্বরূপ, কিছুটা আরও স্পষ্টতার জন্য নিজের উত্তরটি আপডেট করার বিষয়ে আপনি কি আপত্তি জানবেন?
মিকাহ জোল্টু

আসলে, এটি এখনও যোগ হয় না। 1024 + 512 + 512 = 2048512/2048 == 25%। আমি বিশ্বাস করি না যে এই উত্তরটি আসলে সঠিক, অন্তত পৃষ্ঠের উপরে নয়।
মিকাহ জোল্টু

তোমার কি অন্য কোন সিগ্রুপ আছে? এটি সংখ্যাগুলিকে প্রভাবিত করতে পারে। আপনি রেডহ্যাট ডক্সও
Lazy404

তাত্পর্যপূর্ণ আর কিছু চলছিল না, বক্সটি পরীক্ষা চালানোর আগে এবং পরে অলস ছিল। সমস্ত উদাহরণ সিগ্রুপ সেটআপ দিয়ে যখন সমস্ত প্রক্রিয়া শুরু করা হয় তখন কী ঘটে তা দেখায়। কিছু প্রক্রিয়া সিগ্রুপ ব্যবহার না করে যা ঘটে তা নিয়ে আলোচনা হয় না, যা আমি বের করার চেষ্টা করছি।
মাইকা জোল্টু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.