এক বা একাধিক সিপিইউতে কোনও প্রক্রিয়া বাঁধার জন্য টাস্কসেট ; মূলত নির্দিষ্ট যেখানে এটা প্রাথমিক সঞ্চালনের এ চালাতে পারেন অথবা এটি চালাচ্ছে না। যদি আধুনিক সার্ভার সরঞ্জামগুলিতে RHEL / CentOS ব্যবহার করা numactl
হয় তবে এটি সুপারিশ করা হয় taskset
।
সিপিউসেট / সিএসটি সিপিইউ শিল্ডিংয়ের জন্য এবং এটি লিনাক্স সিগ্রুপের চারপাশে একটি কাঠামো তৈরি। প্রসেস ম্যানেজমেন্টের জন্য অন্যান্য সরঞ্জাম উপলব্ধ হওয়ায় নির্দিষ্ট ডিস্ট্রিবিউটে (আরএইচইএল) তে সিএসটি কখনও জনপ্রিয় ছিল না।
নীচের প্রথম কমান্ডটি একটি ঝাল তৈরি করে যা অপারেটিং সিস্টেমের কাজগুলিকে সিপিইউ 0 এবং 8 এর মধ্যে সীমাবদ্ধ করে রাখবে second
# cset shield --cpu 1-7,9-15 --kthread=on
# cset proc --move --pid=$$ --threads --toset=user
সিপিইউতে বাঁধাইয়ের প্রক্রিয়াটি অনুসরণ করার আগে সম্ভবত অন্যান্য বিষয়গুলি পরীক্ষা করার জন্য এবং টিউন করার জন্য রয়েছে; বাধা ( irqbalance
আংশিক অক্ষমকরণ), পাওয়ার-সেভিংস সেটিংস, সিস্টেম শিডিয়ুলার, I / O লিফট, রিয়েলটাইম নীতি ( chrt
)।
দেখুন: উবুন্টুতে কম বিলম্বিত টিসিপি সেটিংস
এখানে একটি (এর সংবর্ত ) যে নির্বাচন মোড়কের একটি অ্যাপ্লিকেশন একটি কোর উদাহরণস্বরূপ, irqbalance স্টপ, এটি এবং কালো তালিকাগুলি শুরু নির্বাচিত কোর, তারপর, executes সঙ্গে ./your_program SCHED_FIFO নির্বাচিত কোর উপর এবং অগ্রাধিকার 99।
Core=5
CoreMask=`echo "16 o 2 $Core ^ p" | dc`
service irqbalance stop
until [ "`service irqbalance status`" = "irqbalance is stopped" ] ; do sleep 1 ; done
IRQBALANCE_ONESHOT=1 IRQBALANCE_BANNED_CPUS=${CoreMask} irqbalance
sleep 1
until [ "`service irqbalance status`" = "irqbalance is stopped" ] ; do sleep 1 ; done
numactl --physcpubind=${Core} --localalloc chrt -f 99 ./your_program