जवाबों:
ps
जब आप इसे top
कमांड के साथ आसानी से कर सकते हैं तो इसका उपयोग क्यों करें ?
यदि आप उपयोग करना चाहते हैं ps
, तो यह प्रयास करें:
ps aux | sort -nrk 3,3 | head -n 5
यदि आप लगातार अपडेट के साथ कुछ ऐसा चाहते हैं जो 'top'esq हो, तो वॉच का उपयोग करें
watch "ps aux | sort -nrk 3,3 | head -n 5"
ps aux | sort -nrk 3,3 | head -n 5
top
वास्तव में कैसे काम करता है से अलग है ।
top
प्रक्रिया सूची पढ़ता है और किसी अन्य प्रक्रिया के लिए पाइपिंग के बिना अपने दम पर परिणाम प्रदर्शित करता है
सही उत्तर है :
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
bash
(x2, या head
साथ ही ps
... )
sort
, दूसरा यह दिखाता है कि छंटनी के साथ हस्तक्षेप किए बिना कॉलम को कैसे निर्दिष्ट किया जाए। किसी चीज़ की व्याख्या करते समय .. एक बार में संक्षिप्त होना और एक बात समझाना हमेशा बेहतर होता है।
अपनी आवश्यकताओं के आधार पर आपको यह थोड़ा और पठनीय लग सकता है:
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) हैं
मुझे नहीं लगता ps
कि आप क्या देख रहे हैं। क्या आपने आउटपुट से देखा है top
?
यदि आपके पास जीएनयू-टॉप है, तो सीपीयू उपयोग और शीर्ष / 5 लाइनों (पहले 8 हेडर हैं) प्राप्त करने के लिए सिर / पूंछ का उपयोग करके प्रक्रिया सूची को बाहर करने के लिए बैच मोड का उपयोग करने का प्रयास करें:
top -b -n 1 | head -n 12 | tail -n 5
बीएसडी शीर्ष अलग तरह से व्यवहार करता है और इसमें एक गैर-इंटरैक्टिव मोड नहीं है, इसलिए अन्य ps
आधारित समाधानों में से एक का उपयोग करें ।
top -o cpu -n 5
उसी चीज को प्राप्त करने का एक तरीका है। क्या कोई जानता है? मेरा top
आपके लिए अलग है top
।
-o
और -n
छोड़ने से पहले प्रदर्शन को ताज़ा करने की संख्या निर्धारित करता है ।
top
पास बैच मोड नहीं है, जो काफी सीमित है। top
अन्य कमांड में पाइपिंग का कोई तरीका होना चाहिए । मैं कुछ शोध करूँगा।
top
ने आज दोपहर के अनुसार काम किया। चीयर्स।
सबसे तेज एक लाइनर मैंने इसके लिए पाया है (नोट 6 क्योंकि हेडर ऊपर जोड़ता है):
ps aux k-pcpu | head -6
ध्यान दें कि फ़ील्ड कोड (पीएस मैन पेज में दिए गए) के आधार पर पीएस के वर्तमान संस्करणों में उनके भीतर छँटाई की क्षमता है। प्रोसेसर उपयोग के लिए फ़ील्ड कोड "c" है। आप --sort c
एक ps कमांड के अंत में उपयोग कर सकते हैं उदाps aux --sort c
यह सूची के निचले भाग में सबसे सीपीयू का उपयोग करते हुए प्रक्रिया डाल देगा। जैसे सॉर्ट करने के लिए उपयोग किए गए फ़ील्ड कोड में माइनस जोड़कर सूची का उल्टा क्रमps aux --sort -c
अन्य मूल्यवान उत्तरों में एक बिंदु जोड़ने के लिए, मुझे पसंद है:
ps auxk-c | head -6
यह हेडर को भी प्रिंट करता है, जो अच्छा है।
यहां सॉर्ट के लिए CPU उपयोग (उपनाम ) फ़ील्ड के k
समान है --sort
और c
निर्दिष्ट करता है %cpu
, जबकि -
रिवर्स सॉर्ट के लिए है।
आप और अधिक विनिर्देशक द्वारा अलग जोड़ सकते हैं ,
, अन्य संभावित विनिर्देशक हैं: %mem
, args
, bsdstart
, pid
, gid
, uid
... जो आप में संपूर्ण सूची मिल सकती मानक प्रारूप विनिर्देशक आदमी पृष्ठ के अनुभाग। उदाहरण के लिए:
ps auxk -gid,-%mem | head -11
उच्चतम समूह आईडी के साथ 10 प्रक्रियाओं को प्रिंट करेगा, आंतरिक रूप से मेमोरी उपयोग द्वारा क्रमबद्ध।
कमांड लाइन टूल ps
का अपना अलग विकल्प है, इसलिए मैं पसंद करता हूं:
$ ps -eo pcpu,args --sort=-%cpu | head
आप अपने इच्छित कॉलम जोड़ सकते हैं। देखें कि ps
मैन पेज के माध्यम से और कौन से विकल्प उपलब्ध हैं ।
$ man ps
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
मेरा मानना है कि शीर्ष 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] बढ़ती संख्यात्मक क्रम सूची है।=
-
+
top -bn1 |sed -n '7,12'p
एक अच्छा सा एक लाइनर के रूप में भी काम करता है।
हालाँकि, मैं --sort = X -o X, Y, Z के साथ ps का उपयोग करना पसंद करता हूँ
पीएस का उपयोग करके आप एक प्रक्रिया या उपयोगकर्ता के लिए अलग-अलग आँकड़े grep खींच सकते हैं और फिर जागने के लिए एक पाइप के साथ कुल या उन्हें avg कर सकते हैं।