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


135

আমি লিনাক্সে একটি নির্দিষ্ট প্রক্রিয়া দ্বারা ব্যবহৃত থ্রেডের সংখ্যা পর্যবেক্ষণ করতে চাই। প্রক্রিয়াটির কার্যকারিতা প্রভাবিত না করে এই তথ্য পাওয়ার সহজ উপায় কি আছে?


কীভাবে যদি কোনও অ্যাপ্লিকেশন প্রক্রিয়া কেবল অল্প সময়ের জন্য চলে? (বলুন 2 সেকেন্ড।)
ব্যবহারকারী 2023370

উত্তর:


152

চেষ্টা

ps huH p <PID_OF_U_PROCESS> | wc -l

বা হিপ


3
আমি বিশ্বাস করি আপনার 1এটি থেকে বিয়োগ করা উচিত কারণ এটি USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDটেবিল শিরোনামের মতো একটি লাইন প্রিন্ট করে ।
আহমেটবি - গুগল

2
'এইচ' শিরোনামটি আড়াল করে।
থিংম্যাসিভ

11
-1 আপনি wcযখন ঠিক করতে পারলেন তখন আউটপুটটি কেন পাইপ করবেন ps -o thcount <pid>? এই উত্তর দেখুন ।
ফ্লো

73

প্রদত্ত পিডের জন্য থ্রেডের সংখ্যা পেতে:

$ ps -o nlwp <pid>

কোথায় nlwpজন্য ব্রিদিং হাল্কা ওজন সংখ্যা (থ্রেড) প্রক্রিয়ায় । এভাবে psalias লেখা 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 }'

2
এখানে সবচেয়ে দরকারী উত্তর। বিশেষত watchকমান্ড। তবে মনে রাখবেন যে thcountকিছু ব্যবহার করা (রেড হ্যাট ...) ব্যর্থ হতে পারে, যদিও এটি nlwpআমার পক্ষে কাজ করেছে।
জোশুয়া ডিটওয়েলার

50

একটি প্রক্রিয়া প্রতিটি থ্রেড অধীনে একটি ডিরেক্টরি তৈরি করে /proc/<pid>/task। ডিরেক্টরিগুলির সংখ্যা গণনা করুন এবং আপনার থ্রেডের সংখ্যা রয়েছে।


1
উপরের মন্তব্য যোগ করতে। আপনি থ্রেডের সংখ্যা এটি এই কমান্ড ব্যবহার করতে পারেন: find /proc/<PID>/task -maxdepth 1 -type d -print | wc -l। কেবলমাত্র <পিআইডি> আপনার প্রসেস আইডি দিয়ে প্রতিস্থাপন করুন যা আপনি পেতে topবা ব্যবহার করতে পারবেনps
নেভিগ্যাট্রন


21

ps -eLfশেলটিতে সিস্টেমটিতে বর্তমানে চলমান সমস্ত থ্রেড এবং প্রক্রিয়াগুলির একটি তালিকা আপনাকে দেবে। অথবা, আপনি topকমান্ড চালাতে পারেন তারপরে থ্রেড তালিকাগুলি টগল করতে 'এইচ' টিপুন।


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

6

জেস্ট্যাকটি বেশ সাশ্রয়ী - একটি বিকল্প হ'ল সক্রিয় থ্রেডগুলি খুঁজে পেতে গ্রেপের মাধ্যমে আউটপুটটি পাইপ করা এবং তারপরে ডাব্লুসি-এল মাধ্যমে পাইপ দেওয়া।

আরও গ্রাফিকালি হ'ল জে কনসোল, যা প্রদত্ত প্রক্রিয়াটির জন্য থ্রেড গণনা প্রদর্শন করে।


6

আপনি যদি ব্যবহার করেন:

ps uH p <PID_OF_U_PROCESS> | wc -l

আপনাকে ফলাফলটিতে 1 টি বিয়োগ করতে হবে, যেহেতু "ডাব্লুসি" লাইনগুলি গণনা করছে তার মধ্যে একটি "পিএস" কমান্ডের শিরোনাম।


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

6

এখানে একটি আদেশ রয়েছে যা প্রদত্ত প্রক্রিয়াটির থ্রেডের সংখ্যা প্রদর্শন করে:

ps -L -o pid= -p <pid> | wc -l

অন্যান্য psভিত্তিক উত্তরগুলির মতো নয়, বিকল্পের জন্য শিরোনামের 1কোনও psলাইন নেই বলে এর আউটপুট থেকে এখানে বিয়োগ করার দরকার নেই -o pid=


5

$ 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

4

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



2

সবচেয়ে সহজ উপায় হ'ল "হ্যাপ" ব্যবহার করা। আপনি "এইচটিপ" ইনস্টল করতে পারেন (শীর্ষের একটি ফ্যানসিয়ার সংস্করণ) যা আপনাকে আপনার সমস্ত কর, প্রক্রিয়া এবং মেমরির ব্যবহার দেখাবে।

সমস্ত প্রক্রিয়াটি দেখানোর জন্য "শিফট + এইচ" টিপুন বা এটি আড়াল করতে আবার টিপুন। আপনার প্রক্রিয়াটির নাম অনুসন্ধান করতে "F4" কী টিপুন।

উবুন্টু বা ডেবিয়ানে ইনস্টল করা:

sudo apt-get install htop

রেডহাট বা সেন্টোস-এ ইনস্টল করা হচ্ছে:

yum install htop
dnf install htop      [On Fedora 22+ releases]

আপনি যদি সোর্স কোড থেকে "এইচটিপি" সংকলন করতে চান তবে আপনি এটি এখানে পাবেন


1

আপনি যদি প্রদত্ত পিডের জন্য সিপিইউ ব্যবহার করে থ্রেডের সংখ্যাটি অনুসন্ধান করার চেষ্টা করছেন তবে আমি ব্যবহার করব:

top -bc -H -n2 -p <pid> | awk '{if ($9 != "0.0" && $1 ~ /^[0-9]+$/) print $1 }' | sort -u | wc -l

0

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

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



0

আপনি যদি কোনও লিনাক্স সিস্টেমে ব্যবহারকারী প্রতি থ্রেডের সংখ্যা চান তবে আপনার ব্যবহার করা উচিত:

ps -eLf | grep <USER> | awk '{ num += $6 } END { print num }'

যেখানে পছন্দসই ব্যবহারকারীর নাম ব্যবহার করুন।

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