টাস্কসেট এবং সিপুসেটের মধ্যে পার্থক্য


8

আমি আমার লিনাক্স নেটওয়ার্ক অ্যাপ্লিকেশনটির বিলম্বকে হ্রাস করার চেষ্টা করছি। আমি শিখেছি যে নির্দিষ্ট সিপিইউ কোরটিতে একটি প্রোগ্রাম "বাঁধাই" করার জন্য দুটি সরঞ্জাম রয়েছে: টাস্কসেট এবং সিপুয়েসেট।

  1. আমার কোনটি পছন্দ করা উচিত? তারা কি নিম্ন স্তরের সমতুল্য?
  2. (স্বভাব) আমার অ্যাপ্লিকেশনটির একক থ্রেড রয়েছে এবং দ্রুত ল্যান নেটওয়ার্কের মাধ্যমে কমপক্ষে সম্ভাব্য বিলম্বের সাথে একক টিসিপি সংযোগ (পুনরায় সংযোগ স্থাপন করা হবে না) প্রক্রিয়া করার কথা রয়েছে। আমি কি সঠিক পথে আছি?

আপনি কি তাদের নিজস্ব পৃষ্ঠাগুলি পড়েছেন?
মাইকেল হ্যাম্পটন

আপনি কি বিশদ প্রোফাইলিং চালিয়েছেন যাতে আপনি নিশ্চিত হন যে এটি লিনাক্স নেটওয়ার্কিং অংশ যা অ্যাপ্লিকেশনটির কারণে বিলম্বের কারণ নয়?
তেরো কিলকানেন

আপনি কোন ওএস / বিতরণ / সংস্করণ / কার্নেলটি চালাচ্ছেন?
ew

এছাড়াও, কোন ধরণের হার্ডওয়্যার জড়িত? সার্ভার মেক / মডেল, সিপিইউ স্পেসিফিকেশনস, নেটওয়ার্কিং ইনফ্রাস্ট্রাকচার ...
ew

উত্তর:


12

এক বা একাধিক সিপিইউতে কোনও প্রক্রিয়া বাঁধার জন্য টাস্কসেট ; মূলত নির্দিষ্ট যেখানে এটা প্রাথমিক সঞ্চালনের এ চালাতে পারেন অথবা এটি চালাচ্ছে না। যদি আধুনিক সার্ভার সরঞ্জামগুলিতে 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

1
দ্রষ্টব্য, ব্যবহারের সময় কোনও অ্যাপ্লিকেশনটির সংযুক্তি পুনরায় সেট করা সম্ভব taskset। আপনি যদি সিপুয়েসেট ব্যবহার করেন তবে সিপিউসেট আপনাকে যা দেয় তা থেকে আপনার অ্যাফিনিটিগুলিকে পরিবর্তন করা সম্ভব নয়।
ম্যাথু ইফি

আর numactl??
ew white

1
একই, উভয় প্রোগ্রাম একই অন্তর্নিহিত সিস্টেম কল কল sched_setaffinity
ম্যাথু ইফি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.