আমি বিচ্ছিন্ন সিপিইউগুলির সেটগুলিতে মাল্টি-থ্রেডড বেঞ্চমার্কগুলি চালানোর চেষ্টা করছি। একটি দীর্ঘ গল্প সংক্ষিপ্ত কাটা, আমি প্রাথমিকভাবে চেষ্টা করেছি isolcpus
এবং taskset
, কিন্তু সমস্যাগুলি আঘাত । এখন আমি সিগ্রুপ / সিসেট নিয়ে খেলছি।
আমি মনে করি "সাধারণ" cset shield
ব্যবহারের ক্ষেত্রে খুব সুন্দরভাবে কাজ করা উচিত। আমার 4 টি কোর রয়েছে, তাই আমি বেঞ্চমার্কিংয়ের জন্য আমি 1-3 ব্যবহার করতে চাই (আমি এই কোরগুলিকে অ্যাডাপটিভ টিক্স মোডে রাখতে কনফিগারও করেছি), তারপরে কোর 0 অন্য সব কিছুর জন্য ব্যবহার করা যেতে পারে।
টিউটোরিয়ালটি এখানে অনুসরণ করে , এটি এতটা সহজ হওয়া উচিত:
$ sudo cset shield -c 1-3
cset: --> shielding modified with:
cset: "system" cpuset of CPUSPEC(0) with 105 tasks running
cset: "user" cpuset of CPUSPEC(1-3) with 0 tasks running
সুতরাং এখন আমাদের কাছে একটি "ঝাল" রয়েছে যা বিচ্ছিন্ন (ইউজার সিএসেট) এবং কোর 0 অন্য সব কিছুর জন্য (সিস্টেম সিসেট)।
ঠিক আছে, এখন পর্যন্ত ভাল দেখাচ্ছে। এখন দেখা যাক htop
। প্রক্রিয়াগুলি সমস্ত সিপিইউ 0 তে স্থানান্তরিত হওয়া উচিত ছিল:
তাই না? কিছু প্রক্রিয়া রক্ষা কর্ডগুলিতে চলমান হিসাবে প্রদর্শিত হয়। হ্যাপের একটি ত্রুটিযুক্ত মামলাটি খণ্ডন taskset
করার জন্য , আমি processাল হিসাবে দেখানো কোনও প্রক্রিয়াটির অ্যাফিনিটি মাস্কটিও পরিদর্শন করার চেষ্টা করেছি ।
সম্ভবত এই কাজগুলি অদলবদল ছিল? আসুন সিপিইউ 3 (যা শিল্ডে থাকা উচিত) চলমান হিসাবে দেখানো একটি নির্বিচার প্রক্রিয়াটি এঁকে ফেলুন htop
এবং দেখুন সিস্টেম সিগ্রুপে এটি অনুসারে প্রদর্শিত হয়েছে কিনা cset
:
$ cset shield -u -v | grep 864
root 864 1 Soth [gmain]
vext01 2412 2274 Soth grep 864
হ্যাঁ, এটি অনুযায়ী সিস্টেম ক্রুগ-এ চলছে cset
। সুতরাং htop
এবং cset
একমত না।
তাহলে এখানে কি হচ্ছে? আমি কার উপর নির্ভর করব: সিপিইউ অ্যাফিনিটিস ( htop
/ taskset
) বা cset
?
আমি সন্দেহ করি যে আপনার cset
একসাথে ব্যবহার এবং সংযুক্তি থাকার কথা নয় । সম্ভবত ঝালটি ঠিকঠাক কাজ করছে এবং আমার স্নেহ মুখোশ এবং htop
আউটপুট উপেক্ষা করা উচিত । যেভাবেই হোক না কেন, আমি এটি বিভ্রান্তিকর মনে করি। কেউ কি কিছু আলোকপাত করতে পারে?
numactl
এবং cgconfig
এবং cgrules
/ cgred
আপনি কী করছেন তা প্রবাহিত করতে হবে। এগুলি কিছু কাজ দিয়ে দেবিয়ানের জন্য উপলব্ধ হতে পারে ।