আমার একটি সিঙ্গল কোর মেশিনে 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পরিবর্তে যদি সম্ভব হয় তবে জিনিসগুলি সিপিইউ দ্বারা বিভক্ত করার পরামর্শ দিচ্ছি ।