`Ps` के साथ शीर्ष पाँच सीपीयू खपत प्रक्रियाओं को दिखाएँ


101

पीएस के साथ शीर्ष पांच सीपीयू खपत प्रक्रियाओं को कैसे दिखाया जाए?

जवाबों:


95

psजब आप इसे topकमांड के साथ आसानी से कर सकते हैं तो इसका उपयोग क्यों करें ?

यदि आप उपयोग करना चाहते हैं ps, तो यह प्रयास करें:

ps aux | sort -nrk 3,3 | head -n 5

यदि आप लगातार अपडेट के साथ कुछ ऐसा चाहते हैं जो 'top'esq हो, तो वॉच का उपयोग करें

watch "ps aux | sort -nrk 3,3 | head -n 5"

3
ps aux | सॉर्ट -k 3,3 | पूंछ -n 5 ;-)
प्लानसबी

1
यह संख्यात्मक प्रकार को शामिल करने के लिए अच्छा होगा, ps aux के शीर्ष लेख को छोड़ने के लिए। ps aux | sort -nrk 3,3 | head -n 5
syss

1
यह कई प्रक्रियाओं को जन्म देता है जो अधिक संसाधन खपत होती है और यह दौड़ की स्थिति के लिए भी अधिक प्रवण होती है, क्योंकि जब पाइप किए गए डेटा की बात आती है तो प्रक्रिया सूची पहले ही बदल सकती है
phuclv

यह सच है @ LưuVĩnhPhúc लेकिन मुझे आश्चर्य है कि यह topवास्तव में कैसे काम करता है से अलग है ।
आइकेडवाटर

1
@icedwater topप्रक्रिया सूची पढ़ता है और किसी अन्य प्रक्रिया के लिए पाइपिंग के बिना अपने दम पर परिणाम प्रदर्शित करता है
युक्विव

87

सही उत्तर है :

ps --sort=-pcpu | head -n 6

तो आप सॉर्टिंग के साथ हस्तक्षेप किए बिना कॉलम निर्दिष्ट कर सकते हैं।

उदाहरण के लिए:

ps -Ao user,uid,comm,pid,pcpu,tty --sort=-pcpu | head -n 6

मैक ओएस एक्स के लिए ध्यान दें : मैक ओएस एक्स में, psपहचान नहीं करता है --sort, लेकिन -rवर्तमान सीपीयू उपयोग द्वारा सॉर्ट करने की पेशकश करता है। इस प्रकार, मैक ओएस एक्स के लिए आप उपयोग कर सकते हैं:

ps -Ao user,uid,comm,pid,pcpu,tty -r | head -n 6

3
यह सही जवाब है। थैंक्यू फेसुंडो। मैं दूसरों को यह समझाने की कोशिश कर रहा था कि आप सॉर्ट का उपयोग कर सकते हैं और इसे पाइप कर सकते हैं, लेकिन पीएस भी छँटाई के लिए एक विकल्प के साथ बनाया गया है और अब मैं देख रहा हूँ कि आप इसका उपयोग भी करते हैं जो बहुत अच्छा है।
लुइस अल्वाराडो

दूसरा आदेश अधिक उपयोगी प्रतीत होता है ... लेकिन पहले वाला सिर्फ दिखाने के लिए लगता है bash(x2, या headसाथ ही ps... )
विल्फ

3
@Wilf कमांड का उपयोग किए बिना सीपीयू की खपत के आधार पर छाँटने का तरीका पहला है sort, दूसरा यह दिखाता है कि छंटनी के साथ हस्तक्षेप किए बिना कॉलम को कैसे निर्दिष्ट किया जाए। किसी चीज़ की व्याख्या करते समय .. एक बार में संक्षिप्त होना और एक बात समझाना हमेशा बेहतर होता है।
फेसुंडो विक्टर

27

अपनी आवश्यकताओं के आधार पर आपको यह थोड़ा और पठनीय लग सकता है:

ps -eo pcpu,pid,user,args --no-headers| sort -t. -nk1,2 -k4,4 -r |head -n 5

नमूना उत्पादन:

 1.3     4 root     [ksoftirqd/0]
 1.1     9 root     [ksoftirqd/1]
 1.0 17606 nobody   /usr/sbin/gmetad
 1.0    13 root     [ksoftirqd/2]
 0.3 17401 nobody   /usr/sbin/gmond

(फ़ील्ड% CPU, PID, USER, COMMAND) हैं


22

मुझे नहीं लगता psकि आप क्या देख रहे हैं। क्या आपने आउटपुट से देखा है top?

यदि आपके पास जीएनयू-टॉप है, तो सीपीयू उपयोग और शीर्ष / 5 लाइनों (पहले 8 हेडर हैं) प्राप्त करने के लिए सिर / पूंछ का उपयोग करके प्रक्रिया सूची को बाहर करने के लिए बैच मोड का उपयोग करने का प्रयास करें:

top -b -n 1 | head -n 12  | tail -n 5

बीएसडी शीर्ष अलग तरह से व्यवहार करता है और इसमें एक गैर-इंटरैक्टिव मोड नहीं है, इसलिए अन्य psआधारित समाधानों में से एक का उपयोग करें ।


1
ओएस एक्स में, top -o cpu -n 5उसी चीज को प्राप्त करने का एक तरीका है। क्या कोई जानता है? मेरा topआपके लिए अलग है top
boehj

आप अलग शीर्ष के साथ एक हैं ताकि आप कहने की स्थिति में होंगे। मेरा शीर्ष नहीं है -oऔर -nछोड़ने से पहले प्रदर्शन को ताज़ा करने की संख्या निर्धारित करता है ।
कालेब

काफी उचित। मैं आज दोपहर एक लिनक्स बॉक्स पर मिलेगा और देखूंगा। मेरे topपास बैच मोड नहीं है, जो काफी सीमित है। topअन्य कमांड में पाइपिंग का कोई तरीका होना चाहिए । मैं कुछ शोध करूँगा।
बोहेज

मैंने अपने उत्तर में बैच मोड स्विच का उल्लेख किया है लेकिन यह वास्तव में मेरे शीर्ष के लिए अनावश्यक है क्योंकि यह एक संवादात्मक सत्र के बजाय एक पाइप का हिस्सा होने का पता लगाता है। क्या आपने इसके बिना सिर्फ पाइप करने की कोशिश की?
कालेब

1
करूँगा। जीएनयू topने आज दोपहर के अनुसार काम किया। चीयर्स।
boehj


5

ध्यान दें कि फ़ील्ड कोड (पीएस मैन पेज में दिए गए) के आधार पर पीएस के वर्तमान संस्करणों में उनके भीतर छँटाई की क्षमता है। प्रोसेसर उपयोग के लिए फ़ील्ड कोड "c" है। आप --sort cएक ps कमांड के अंत में उपयोग कर सकते हैं उदाps aux --sort c

यह सूची के निचले भाग में सबसे सीपीयू का उपयोग करते हुए प्रक्रिया डाल देगा। जैसे सॉर्ट करने के लिए उपयोग किए गए फ़ील्ड कोड में माइनस जोड़कर सूची का उल्टा क्रमps aux --sort -c


4

अन्य मूल्यवान उत्तरों में एक बिंदु जोड़ने के लिए, मुझे पसंद है:

ps auxk-c | head -6

यह हेडर को भी प्रिंट करता है, जो अच्छा है।

यहां सॉर्ट के लिए CPU उपयोग (उपनाम ) फ़ील्ड के kसमान है --sortऔर cनिर्दिष्ट करता है %cpu, जबकि -रिवर्स सॉर्ट के लिए है।

आप और अधिक विनिर्देशक द्वारा अलग जोड़ सकते हैं ,, अन्य संभावित विनिर्देशक हैं: %mem, args, bsdstart, pid, gid, uid... जो आप में संपूर्ण सूची मिल सकती मानक प्रारूप विनिर्देशक आदमी पृष्ठ के अनुभाग। उदाहरण के लिए:

 ps auxk -gid,-%mem | head -11

उच्चतम समूह आईडी के साथ 10 प्रक्रियाओं को प्रिंट करेगा, आंतरिक रूप से मेमोरी उपयोग द्वारा क्रमबद्ध।


3

कमांड लाइन टूल psका अपना अलग विकल्प है, इसलिए मैं पसंद करता हूं:

$ ps -eo pcpu,args --sort=-%cpu | head

आप अपने इच्छित कॉलम जोड़ सकते हैं। देखें कि psमैन पेज के माध्यम से और कौन से विकल्प उपलब्ध हैं ।

$ man ps

0

topमैक ओएस एक्स पर top -l numberOfSamples(जीएनयू के बैच मोड के बराबर लगता है) के रूप में एक लॉगिंग मोड विकल्प है top। हालांकि, यह आवश्यक है कि कम से कम दो नमूने हों, क्योंकि "पहले नमूने को प्रदर्शित करने के लिए प्रत्येक प्रक्रिया के लिए एक अमान्य% CPU प्रदर्शित होगा, क्योंकि इसकी गणना नमूनों के बीच डेल्टा का उपयोग करके की जाती है" ( man 1 top)।

# examples
top -o cpu -l 2 -n 5 | tail -n 6
top -o cpu -l 2 -n 5 -stats pid,command,cpu | tail -n 6
top -o cpu -l 2 -n 5 -stats pid,command,cpu -U $(logname) | tail -n 6

0

topआपके CPU का उपयोग कर रहा है प्रदर्शित करेगा। यदि आपने इसे स्थापित किया है, htopतो आपको अपने मामले में सीपीयू द्वारा फ़िल्टरिंग सहित अधिक बारीक-नियंत्रित नियंत्रण की अनुमति देता है।


0

मेरा मानना ​​है कि शीर्ष 5 सीपीयू खपत प्रक्रिया को देखने का सबसे सरल तरीका है,

ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head -n 5

देखने के लिए शीर्ष 5 स्मृति लेने वाली प्रक्रिया है,

ps -eo pid,comm,%cpu,%mem --sort=-%mem | head -n 5

कहाँ पे,

-e : इस ध्वज का उपयोग सभी प्रक्रिया को चुनने के लिए किया जाता है

-o : इस ध्वज का उपयोग उपयोगकर्ता द्वारा परिभाषित प्रारूप के रूप में किया जाता है।

pid : इस तर्क का इस्तेमाल पिद दिखाने के लिए किया जाता है

comm: यह तर्क केवल कमांड नाम दिखाने के लिए उपयोग किया जाता है। पूर्ण कमांड का उपयोग करने के लिए args, cmdयाcommand

%cpu: यह तर्क "##। #" प्रारूप में प्रक्रिया के सीपीयू उपयोग का प्रतिशत दिखाता है। यहाँ pcpuभी इस्तेमाल किया जा सकता है।

%mem: यह तर्क मशीन पर भौतिक मेमोरी में प्रक्रिया के निवासी सेट आकार के अनुपात को दिखाता है, प्रतिशत के रूप में व्यक्त किया गया है। यहाँ pmemभी इस्तेमाल किया जा सकता है।

--sort: सॉर्टिंग ऑर्डर निर्दिष्ट करें। बाद हस्ताक्षर जहां डिफ़ॉल्ट विकल्प है जो शीर्ष पर उच्चतम मूल्य सॉर्ट करने के लिए प्रयोग किया जाता है [n करने के लिए यानी 0] बढ़ती संख्यात्मक क्रम सूची है।=-+


-2

top -bn1 |sed -n '7,12'pएक अच्छा सा एक लाइनर के रूप में भी काम करता है।
हालाँकि, मैं --sort = X -o X, Y, Z के साथ ps का उपयोग करना पसंद करता हूँ

पीएस का उपयोग करके आप एक प्रक्रिया या उपयोगकर्ता के लिए अलग-अलग आँकड़े grep खींच सकते हैं और फिर जागने के लिए एक पाइप के साथ कुल या उन्हें avg कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.