আমি কীভাবে লিনাক্সে কোনও প্রক্রিয়াটির প্রসেসরের সত্ত্বাকে সেট করতে পারি?


29

আমি কীভাবে লিনাক্সে কোনও প্রক্রিয়াটির প্রসেসরের সত্ত্বাকে সেট করতে পারি?

উত্তর:


24

আমি এটির জন্য টাস্কসেট ব্যবহার করেছি। আপনার যদি টাস্কসেট ইনস্টল করা থাকে তবে এর মতো কিছু:

taskset -c 1,3 -p 45678

45678 আইডি দিয়ে প্রক্রিয়াটি সিপাস 1 এবং 3 এর সাথে সখ্যতা স্থাপন করবে।


1
একটি বেনামে সম্পাদনা পরামর্শ দিয়েছিল যে কমান্ডটি taskset -p -c 1,3 45678পরিবর্তে হওয়া উচিত taskset -c 1,3 -p 45678; যেমন, এটি -c 1,3একটি মুখোশের স্পেসিফিকেশন এবং যেমন, অবশ্যই -pএবং এর মধ্যে স্থাপন করা উচিত pid
জি-ম্যান বলছেন 'মনিকাকে পুনরায় ইনস্টল করুন'

7

প্রক্রিয়াটির ভিতরে, কলটি হবে sched_setaffinity()বা পাঠ্য পদার্থগুলির জন্য,pthread_setaffinity_np()

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


3

আপনাকে ইনস্টল করতে হবে schedutils(লিনাক্সের শিডিয়ুলার ইউটিলিটিস)। আমি এটি আমার উবুন্টু ডেস্কটপে ব্যবহার করেছি।

এসএফ লিঙ্ক


1
taskset -c 1-3 ./a.out arg1 arg2

a.outপ্রসেসর 1, 2 বা 3 (শূন্য ভিত্তিক) এ সেট করা প্রদত্ত আর্গুমেন্ট এবং সান্নিধ্যের সাথে প্রক্রিয়া আরম্ভ করে ।

এখানে একটি ন্যূনতম সি পরীক্ষা প্রোগ্রাম রয়েছে যা এটি কার্যকরভাবে দেখাতে ব্যবহার করা যেতে পারে: https://stackoverflow.com -c / 50117787 # 50117787

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