উত্তর:
1
এটি থেকে বিয়োগ করা উচিত কারণ এটি USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
টেবিল শিরোনামের মতো একটি লাইন প্রিন্ট করে ।
প্রদত্ত পিডের জন্য থ্রেডের সংখ্যা পেতে:
$ ps -o nlwp <pid>
কোথায় nlwp
জন্য ব্রিদিং হাল্কা ওজন সংখ্যা (থ্রেড) প্রক্রিয়ায় । এভাবে ps
alias লেখা nlwp
থেকে thcount
, যার মানে
$ ps -o thcount <pid>
কাজ করে।
আপনি যদি থ্রেডের গণনা পর্যবেক্ষণ করতে চান তবে সহজভাবে ব্যবহার করুন watch
:
$ watch ps -o thcount <pid>
সিস্টেমে চলমান সমস্ত থ্রেডের যোগফল পেতে:
$ ps -eo nlwp | tail -n +2 | awk '{ num_threads += $1 } END { print num_threads }'
watch
কমান্ড। তবে মনে রাখবেন যে thcount
কিছু ব্যবহার করা (রেড হ্যাট ...) ব্যর্থ হতে পারে, যদিও এটি nlwp
আমার পক্ষে কাজ করেছে।
একটি প্রক্রিয়া প্রতিটি থ্রেড অধীনে একটি ডিরেক্টরি তৈরি করে /proc/<pid>/task
। ডিরেক্টরিগুলির সংখ্যা গণনা করুন এবং আপনার থ্রেডের সংখ্যা রয়েছে।
find /proc/<PID>/task -maxdepth 1 -type d -print | wc -l
। কেবলমাত্র <পিআইডি> আপনার প্রসেস আইডি দিয়ে প্রতিস্থাপন করুন যা আপনি পেতে top
বা ব্যবহার করতে পারবেনps
ps -eLf
শেলটিতে সিস্টেমটিতে বর্তমানে চলমান সমস্ত থ্রেড এবং প্রক্রিয়াগুলির একটি তালিকা আপনাকে দেবে। অথবা, আপনি top
কমান্ড চালাতে পারেন তারপরে থ্রেড তালিকাগুলি টগল করতে 'এইচ' টিপুন।
-p
, বা অন্য কিছু। থ্রেড তালিকাটি আপনার দেখতে ন্যূনতম।
জেস্ট্যাকটি বেশ সাশ্রয়ী - একটি বিকল্প হ'ল সক্রিয় থ্রেডগুলি খুঁজে পেতে গ্রেপের মাধ্যমে আউটপুটটি পাইপ করা এবং তারপরে ডাব্লুসি-এল মাধ্যমে পাইপ দেওয়া।
আরও গ্রাফিকালি হ'ল জে কনসোল, যা প্রদত্ত প্রক্রিয়াটির জন্য থ্রেড গণনা প্রদর্শন করে।
আপনি যদি ব্যবহার করেন:
ps uH p <PID_OF_U_PROCESS> | wc -l
আপনাকে ফলাফলটিতে 1 টি বিয়োগ করতে হবে, যেহেতু "ডাব্লুসি" লাইনগুলি গণনা করছে তার মধ্যে একটি "পিএস" কমান্ডের শিরোনাম।
ps
থ্রেডগুলির একটি হিসাবে আপনার শিরোনামের রেখাটি গণনা করা উচিত নয় ।
$ ps H p pid-id
এইচ - একটি প্রক্রিয়াতে সমস্ত পৃথক থ্রেড তালিকাভুক্ত
অথবা
$cat /proc/pid-id/status
পিড-আইডি হ'ল প্রক্রিয়া আইডি
উদা .. (নীচের আউটপুট কেটে দেওয়া হয়েছে)
root@abc:~# cat /proc/8443/status
Name: abcdd
State: S (sleeping)
Tgid: 8443
VmSwap: 0 kB
Threads: 4
SigQ: 0/256556
SigPnd: 0000000000000000
jvmtop অন্যান্য মেট্রিকের পাশে বর্তমান jvm থ্রেড গণনা প্রদর্শন করতে পারে।
সবচেয়ে সহজ উপায় হ'ল "হ্যাপ" ব্যবহার করা। আপনি "এইচটিপ" ইনস্টল করতে পারেন (শীর্ষের একটি ফ্যানসিয়ার সংস্করণ) যা আপনাকে আপনার সমস্ত কর, প্রক্রিয়া এবং মেমরির ব্যবহার দেখাবে।
সমস্ত প্রক্রিয়াটি দেখানোর জন্য "শিফট + এইচ" টিপুন বা এটি আড়াল করতে আবার টিপুন। আপনার প্রক্রিয়াটির নাম অনুসন্ধান করতে "F4" কী টিপুন।
উবুন্টু বা ডেবিয়ানে ইনস্টল করা:
sudo apt-get install htop
রেডহাট বা সেন্টোস-এ ইনস্টল করা হচ্ছে:
yum install htop
dnf install htop [On Fedora 22+ releases]
আপনি যদি সোর্স কোড থেকে "এইচটিপি" সংকলন করতে চান তবে আপনি এটি এখানে পাবেন ।
আপনি যদি প্রদত্ত পিডের জন্য সিপিইউ ব্যবহার করে থ্রেডের সংখ্যাটি অনুসন্ধান করার চেষ্টা করছেন তবে আমি ব্যবহার করব:
top -bc -H -n2 -p <pid> | awk '{if ($9 != "0.0" && $1 ~ /^[0-9]+$/) print $1 }' | sort -u | wc -l
যদি আপনি সেই থ্রেডগুলিতে আগ্রহী হন যা সত্যই সক্রিয় - যেমন অকার্যকর হয়ে বসে থাকার পরিবর্তে কিছু করার ক্ষেত্রে (অবরুদ্ধ নয়, সময়সীমার অপেক্ষা না করা, "থ্রেড চলমান" হিসাবে রিপোর্ট করা না হলেও সত্যিকার অর্থে কোনও স্ট্রিমের জন্য অপেক্ষা করা হয়) live - তাহলে আপনি জেস্ট্যাক-অ্যাক্টিভে আগ্রহী হতে পারেন ।
এই সরল বাশ স্ক্রিপ্টটি চলে jstack
তারপরে সমস্ত থ্রেড ফিল্টার করে যা হিউরিস্টিকস দ্বারা অলস বলে মনে হচ্ছে, আপনাকে সেই থ্রেডগুলির সন্ধানের চিহ্নগুলি দেখিয়েছে যা আসলে সিপিইউ চক্র গ্রহণ করছে।
আপনি যদি কোনও লিনাক্স সিস্টেমে ব্যবহারকারী প্রতি থ্রেডের সংখ্যা চান তবে আপনার ব্যবহার করা উচিত:
ps -eLf | grep <USER> | awk '{ num += $6 } END { print num }'
যেখানে পছন্দসই ব্যবহারকারীর নাম ব্যবহার করুন।