কম্পিউটার

লিনাক্সে টাস্কসেটের সাথে সিপিইউ কোর কীভাবে বরাদ্দ করবেন

লিনাক্সে টাস্কসেটের সাথে সিপিইউ কোর কীভাবে বরাদ্দ করবেন

মাল্টি-কোর প্রসেসিংয়ের সুবিধা এবং অসুবিধা থাকতে পারে এবং কখনও কখনও আপনাকে সর্বোত্তম কর্মক্ষমতা অর্জনের জন্য প্রোগ্রামগুলিতে (ওরফে "সিপিইউ অ্যাফিনিটি") ম্যানুয়ালি সিপিইউ কোর বরাদ্দ করতে হবে। লিনাক্সের অধীনে, প্রাথমিক টুল হল টাস্কসেট। এটি সম্ভাব্য ভীতিকর শোনাচ্ছে, কিন্তু প্রক্রিয়াটিকে সহজ করার জন্য আমরা এটিকে সহজ ধাপে ভাগ করব৷

টাস্কসেট বেসিক

টাস্কসেট ব্যবহার করে দুটি ভাগে বিভক্ত করা যেতে পারে:চালু করা প্রোগ্রামগুলির সাথে CPU সখ্যতা এবং ইতিমধ্যে চলমান প্রোগ্রামগুলির সাথে। দুটির মধ্যে প্রোগ্রাম চালু করা সহজ, তাই আমরা সেখানে শুরু করব। একটি লঞ্চ কমান্ড এই মত দেখায়:

taskset -c cpu-core-number(s) application

আপনি যে সিপিইউ কোরটি বরাদ্দ করতে চান তার নম্বরটি প্রবেশ করার আগে, ভুলে যাবেন না যে একটি ইউনিক্স নম্বরিং স্কিম সাধারণত 0 থেকে শুরু হয়, তাই আপনার প্রথম কোর হবে 0, আপনার দ্বিতীয় কোর 1 এবং আরও অনেক কিছু। সুতরাং, একটি ডুয়াল-কোর মেশিনে কোর 0 এবং 1 থাকবে এবং একটি কোয়াড-কোর মেশিনে 0, 1, 2 এবং 3 কোর থাকবে৷

ধরা যাক আপনি একটি ডুয়াল-কোর সিস্টেমে অডাসিটি চালাতে চান এবং আপনি এটি আপনার দ্বিতীয় কোরে চালাতে চান। সেই কমান্ডটি হবে:

taskset -c 1 audacity

একাধিক কোর ব্যবহার করা

আমাদের একটি মেশিনে, ক্রোম কখনও কখনও ভিডিও স্ট্রিম করার সময় ফ্রেম ফেলে দেয় কিন্তু দুটি কোরে অ্যাসাইন করা হলে নিজেই আচরণ করবে। আপনি যদি কোয়াড-কোর সিস্টেমে একই জিনিস চেষ্টা করতে চান এবং ক্রোমকে কোর তিন এবং চারে বরাদ্দ করতে চান, কমান্ডটি হবে:

taskset -c 2,3 google-chrome

আপনাকে অনুক্রমিক কোরগুলিতে CPU সখ্যতা বরাদ্দ করতে হবে না - আপনি এলোমেলোভাবে যেকোন কোর(গুলি) বেছে নিতে পারেন। ধরা যাক আপনার একটি ছয়-কোর মেশিন আছে এবং কোর দুই এবং ছয়ে ক্রোম ব্যবহার করতে চান। আপনি কমান্ড লিখবেন:

taskset -c 1,5 google-chrome

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

ধরা যাক আপনার একটি আট-কোর সিস্টেম আছে এবং দ্বিতীয় কোর থেকে অষ্টম পর্যন্ত স্টিম চালাতে চান। সেই কমান্ডটি হবে:

taskset -c 1-7 steam

ইতিমধ্যে চালু হওয়া একটি প্রোগ্রামের জন্য অ্যাফিনিটি পরিবর্তন করা

টাস্কসেট শুধুমাত্র অ্যাপ্লিকেশন চালু করার জন্য সীমাবদ্ধ নয়। আপনি ইতিমধ্যে চলমান একটি প্রোগ্রামের জন্য CPU সখ্যতা পরিবর্তন করতে পারেন। যাইহোক, আপনি একটি অ্যাপ্লিকেশনের অ্যাফিনিটি পরিবর্তন করার আগে, আপনাকে প্রথমে এটির প্রক্রিয়া আইডি (বা সংক্ষেপে পিআইডি) জানতে হবে।

আপনার অ্যাপ্লিকেশনের পিআইডি খুঁজে বের করতে, আপনি আপনার ডেস্কটপের সিস্টেম মনিটর ব্যবহার করার চেষ্টা করতে পারেন, কিন্তু দ্রুততম উপায় হল শুধুমাত্র top ব্যবহার করা। . আশ্চর্যজনকভাবে, এটি কমান্ড ব্যবহার করে:

top

সমস্ত চলমান কমান্ডের নাম স্ক্রিনের ডানদিকে রয়েছে। সংশ্লিষ্ট প্রক্রিয়া আইডিগুলি বাম দিকে রয়েছে৷

লিনাক্সে টাস্কসেটের সাথে সিপিইউ কোর কীভাবে বরাদ্দ করবেন

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

একটি বিদ্যমান প্রক্রিয়ার সম্বন্ধ পরিবর্তন করতে, সিনট্যাক্সটি এইরকম দেখায়:

taskset -cp core-numbers PID

আপনি যদি উপরে আমাদের স্ক্রিনশট দেখতে পান, VLC-এর প্রসেস আইডি হল 20485। আমরা চতুর্থ, পঞ্চম এবং ষষ্ঠ কোরে VLC চালানোর চেষ্টা করব, যা ইউনিক্স নম্বরে 3-5 হবে। সুতরাং এত কিছুর পরে, কমান্ডটি হবে:

taskset -cp 3-5 20485

কিন্তু যদি আপনি এটি পরিবর্তন করার আগে বিদ্যমান সম্বন্ধ পরীক্ষা করতে চান? এর জন্য, কোনও মূল নম্বর লিখবেন না এবং টাস্কসেট আপনাকে বলবে যে কীভাবে অ্যাফিনিটি বরাদ্দ করা হয়েছে। তাই যদি আমরা শেষ কমান্ড পরিবর্তন করি:

taskset -cp 20485

এটা আমাদের দেখায় যে ভিএলসি সমস্ত কোর জুড়ে ছড়িয়ে আছে।

লিনাক্সে টাস্কসেটের সাথে সিপিইউ কোর কীভাবে বরাদ্দ করবেন

একটি ভিন্ন প্রোগ্রাম দিয়ে আবার চেষ্টা করা যাক. ধরা যাক আমরা পরিবর্তে SMPlayer এর সাথে একটি বড় ম্যাট্রোস্কা চালাই এবং SMPlayer ইতিমধ্যেই চালু করা হয়েছে। টপ বলে পিআইডি হল 16058৷

লিনাক্সে টাস্কসেটের সাথে সিপিইউ কোর কীভাবে বরাদ্দ করবেন

কিন্তু প্রথমে আমরা এর বিদ্যমান সখ্যতা জানতে চাই। -cp দিয়ে কমান্ড ব্যবহার করা স্যুইচ করুন কিন্তু কোন কোর নম্বর নেই, আমরা দেখতে পাচ্ছি অ্যাফিনিটি বর্তমানে সমস্ত কোরে ছড়িয়ে আছে৷

লিনাক্সে টাস্কসেটের সাথে সিপিইউ কোর কীভাবে বরাদ্দ করবেন

এখন আমরা কমান্ডের সাথে VLC পরীক্ষার মতো একই তিনটি কোরে SMPlayer ছড়িয়ে দেওয়ার চেষ্টা করতে পারি:

taskset -cp 3-5 16058

এটা সহজ, তাই না? আপনি যদি আপনার পিসিকে বেঞ্চমার্ক করতে চান, তাহলে আপনার সিপিইউকে স্ট্রেস-টেস্ট করার জন্য 8টি দরকারী টুলের উপর আমাদের গাইড দেখুন৷


  1. পিপিএসএসপিপি দিয়ে লিনাক্সে কীভাবে পিএসপি গেম খেলবেন

  2. NTP সার্ভারের সাথে কীভাবে লিনাক্স সময় সিঙ্ক করবেন

  3. লিনাক্সের সাথে মাইক্রোসফ্ট ওয়ানড্রাইভ কীভাবে সিঙ্ক করবেন

  4. সিনেবেঞ্চের সাথে আপনার সিপিইউকে কীভাবে বেঞ্চমার্ক করবেন