কীভাবে (টার্মিনাল থেকে) মোট থ্রেডের সংখ্যা (প্রতিটি প্রক্রিয়া অনুসারে এবং মোট)


32

আমি এটি গুগল করার চেষ্টা করেছি, কিন্তু এটি খুঁজে পাচ্ছি না। আমি খুজছি:

  1. প্রসেসে থ্রেডের সংখ্যা

  2. থ্রেডের মোট সংখ্যা বর্তমানে চলছে


উত্তর:


53

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

ps -o nlwp <pid>

সিস্টেমে চলমান সমস্ত থ্রেডের যোগফল পেতে:

ps -eo nlwp | tail -n +2 | awk '{ num_threads += $1 } END { print num_threads }'

1
ps -o nlwp <pid>এনএলডাব্লুপি ফেরায় :), এর অর্থ কী?
সিদ্ধার্থ

2
@ সিদ্ধার্থ এনএলডাব্লুপি মানে লাইটওয়েট প্রসেসিসের সংখ্যা যা থ্রেডের সংখ্যা।
jcollado

আপনি "এইচ" (হেডারের শিরোনাম) দিয়ে "এনএলডাব্লুপি" টিপতে পারেন; যেমন:ps h -o nlwp $pid
বুফ

7

একক প্রক্রিয়া চালিত থ্রেডের সংখ্যা সন্ধানের জন্য আপনি দেখতে পারেন /proc/<pid>/status। এটি ক্ষেত্রগুলির মধ্যে একটি হিসাবে থ্রেডের সংখ্যা তালিকাভুক্ত করা উচিত।


3

আমি এই উত্তরটি প্রায় ঘুরে দেখছি ps axmspsযা চলছে তা তালিকার জন্য দুর্দান্ত সরঞ্জাম।

যদি আপনি কোনও প্রক্রিয়া দ্বারা এটি ফিল্টার করতে চান তবে আপনি এই জাতীয় কিছু চেষ্টা করতে পারেন:

echo $(( `ps axms | grep firefox | wc -l`  - 1))

আমরা 1 টি বিয়োগ করি কারণ গ্রেপ সেই তালিকাতে প্রদর্শিত হবে।

সমস্ত থ্রেডের জন্য সাধারণভাবে এটি কাজ করা উচিত:

echo $(( `ps axms | wc -l`  - 1))

আমরা এবার একটি বিয়োগ করি কারণ এখানে একটি শিরোনাম সারি রয়েছে।


এটি সঠিক নয়, কারণ এটি প্রক্রিয়া অনুযায়ী অতিরিক্ত থ্রেডের প্রতিবেদন করে
স্কোর_উন্ড

1

এটির কমান্ডটি ব্যবহার করতে পারেন এটির সর্বমোট সংখ্যা (একই সাথে চলমান প্রক্রিয়ার ক্ষুদ্র টুকরো) একসাথে পেতে আপনি এটি কমান্ডটি ব্যবহার করতে পারেন ps -o nlwp <pid>all তবে যদি আপনি এটি কোনও ফাইলের মাধ্যমে দেখার চেষ্টা করতে পছন্দ করেন। সিস্টেমের প্রতিটি প্রক্রিয়াটির জন্য আপনার তৈরি করা ফাইলগুলি সম্ভবত দেখতে হবে। সেখানে আপনি প্রক্রিয়াটির চূড়ান্ত বিবরণ পেতে পারেন। প্রতিটি প্রক্রিয়াটির জন্য সেখানে একটি ফোল্ডার তৈরি করা /proc/<pid>হয় যা আপনি অন্যান্য সমস্ত বিবরণও দেখতে পাবেন।


1

বিশেষত লিনাক্সে, প্রতি-প্রক্রিয়াটি করার এখানে একটি উপায়:

#!/bin/sh
while read name val; do
    if [ "$name" = Threads: ]; then
        printf %s\\n "$val"
        return
    fi
done < /proc/"$1"/status

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

পুরো সিস্টেমের জন্য থ্রেড গণনা পেতে, এটি যথেষ্ট:

#!/bin/sh
count() {
    printf %s\\n "$#"
}
count /proc/[0-9]*/task/[0-9]*

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

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