जवाबों:
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 कर सकते हैं।