কেন ksoftirqd / 0 প্রক্রিয়াটি আমার সমস্ত সিপিইউ ব্যবহার করছে?


67

আমি অনুভব করছিলাম যে উবুন্টু কিছুটা আলগা হয়ে চলছে, এবং তারপরে আমি প্রসেসগুলি এটিতে দেখতে দেখতে গেলাম এবং এমন একটি সন্ধান পেল যা 50% সিপিইউর মতো কিছু ব্যবহার করছে ksoftirqd/0

কেউ কি জানেন যে এই প্রক্রিয়াটি কী করে, কেন এটি এত বেশি সিপিইউ ব্যবহার করছে এবং কীভাবে এটি কম সিপিইউ-নিবিড় করা যায়?

উত্তর:


77

আপনার কম্পিউটারটি আইআরকিউ (বিঘ্নিত অনুরোধ) এর মাধ্যমে সংযুক্ত ডিভাইসগুলির সাথে যোগাযোগ করে। যখন কোনও ডিভাইস থেকে কোনও বাধা আসে, অপারেটিং সিস্টেমটি এটি যা করছিল তাতে বিরতি দেয় এবং সেই বাধাকে সম্বোধন শুরু করে।

কিছু পরিস্থিতিতে আইআরকিউগুলি খুব দ্রুত একের পর এক আসে এবং অপারেটিং সিস্টেম একে অপরের আসার আগে একটিকে পরিবেশন শেষ করতে পারে না। যখন একটি উচ্চ গতির নেটওয়ার্ক কার্ড স্বল্প সময়ের ফ্রেমে প্রচুর সংখ্যক প্যাকেট গ্রহণ করে তখন এটি ঘটতে পারে।

যেহেতু অপারেটিং সিস্টেমগুলি আইআরকিউগুলি আসার সাথে সাথে পরিচালনা করতে পারে না (কারণ তারা একের পর এক দ্রুত চলে আসে), অপারেটিং সিস্টেমটি একটি বিশেষ অভ্যন্তরীণ প্রক্রিয়া নামের পরে প্রক্রিয়াকরণের জন্য তাদের সারি করে ksoftirqd

যদি ksoftirqdসিপিইউয়ের ক্ষুদ্র শতাংশের চেয়ে বেশি সময় নিচ্ছে, এটি ইঙ্গিত দেয় যে মেশিনটি ভারী বাধা চাপের মধ্যে রয়েছে।


22

ম্যান পৃষ্ঠা থেকে, ksoftirqdপ্রতি সিপিইউ কার্নেল থ্রেড যা মেশিনটি ভারী নরম-বিঘ্নিত চাপের মধ্যে থাকা অবস্থায় চলে।

কোন সিপিইউ কোনও নির্দিষ্ট বাধা দেয় তা নির্ধারণ করে আপনি সেটিংসটিকে কিছুটা সামলিয়ে নিতে পারেন। আপনি বিষয়বস্তু পরিবর্তন করে এটি করতে /proc/irq/$interrupt_number/smp_affinity। আপনি বাধাগুলি এবং তাদের অর্থগুলির একটি তালিকা পেতে পারেন:

cat /proc/interrupts

নম্বরটি smp_affinityহ'ল কোডে উপস্থাপন করা সিপাসের বিটম্যাপ। ডানদিকের বিটটি সবচেয়ে কম তাৎপর্যপূর্ণ। উদাহরণস্বরূপ, আমার সিস্টেমে 8 টি কোর রয়েছে। আমি যদি কেবল 1, 3 এবং 4 টি কোর ব্যবহার করতে চাই, তবে আমি এসএমপি_ফিনিটি এতে সেট করে দেব 1a:

cpu_7 cpu_6 cpu_5 cpu_4 cpu_3 cpu_2 cpu_1 cpu_0
  0     0     0     1     1     0     1     0    = 0001 1010 = 1a (in hex)

ব্যক্তিগতভাবে, আমি কোনও সিপিইউ সেটআপ করেছি যার সাথে বাধা 29 (আমার 8-কোর সিস্টেমে এথ0) বাছাই করতে সক্ষম হবে:

sudo echo ff > /proc/irq/29/smp_affinity

4

ksoftirqd হ'ল একটি প্রতি সিপিইউ কার্নেল থ্রেড যা মেশিনটি ভারী নরম-বিঘ্নিত চাপের মধ্যে থাকা অবস্থায় চলে। সুতরাং, এটি আপনার সিপু খাচ্ছে না বরং আপনার আইআরকিউ বোঝা হ্রাস করছে।


1
আমি জানি এটি অ্যাসুবুন্টু ডট কম, তবে রাস্পবেরি পাইতে সম্পূর্ণ বিপরীত, ksoftirqd সিপিইউর সমস্ত নিখুঁত আইআরকিউ লোডে খাচ্ছে।
মেশিনাডিক্ট

আমি যেমন বুঝতে পেরেছি ksoftirqd স্থগিত সফ্টির্কসগুলি প্রসেস করে (যখন তারা দ্রুত পর্যাপ্ত প্রক্রিয়া করা যায় না)। যখন অনেকগুলি সফ্টিরক থাকে এবং / অথবা তারা প্রসেসের জন্য প্রচুর সিপিইউ সময় নেয় তবে ksoftirqd অনেক সময় CPU সময় নেয় consu
পাবউক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.