Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Bash प्रोग्रामिंग

20 आवश्यक Sysstat कमांड (mpstat, pidstat, iostat, sar) के साथ लिनक्स प्रदर्शन निगरानी में महारत हासिल करें

परिचय

हमारे पिछले लेख में, हमने sysstat पैकेज को इंस्टॉल और अपग्रेड करने और पैकेज के साथ आने वाली यूटिलिटी को संक्षेप में समझने के बारे में सीखा है।

  1. Sysstat - लिनक्स के लिए प्रदर्शन और उपयोग गतिविधि निगरानी टूल
20 आवश्यक Sysstat कमांड (mpstat, pidstat, iostat, sar) के साथ लिनक्स प्रदर्शन निगरानी में महारत हासिल करें

आज, हम mpstat, pidstat, iostat और sar यूटिलिटी के कुछ दिलचस्प व्यावहारिक उदाहरणों के साथ काम करने जा रहे हैं, जो हमें मुद्दों की पहचान करने में मदद कर सकते हैं। इन यूटिलिटी का उपयोग करने के लिए हमारे पास अलग-अलग विकल्प हैं, मेरा मतलब है आप मैन्युअल रूप से विभिन्न प्रकार के काम के लिए विभिन्न विकल्पों के साथ कमांड चला सकते हैं या आप अपनी आवश्यकताओं के अनुसार अपने कस्टमाइज़्ड स्क्रिप्ट बना सकते हैं। आप जानते हैं सिसएडमिन हमेशा थोड़े आलसी होते हैं, और हमेशा न्यूनतम प्रयास के साथ चीजों को करने का आसान तरीका खोजने की कोशिश करते हैं।

mpstat - प्रोसेसर सांख्यिकी

1. बिना किसी विकल्प के mpstat कमांड का उपयोग करने से सभी CPU द्वारा ग्लोबल औसत गतिविधियां प्रदर्शित होंगी।

tecmint@tecmint ~ $ mpstat
Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
12:23:57 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
12:23:57 IST all 37.35 0.01 4.72 2.96 0.00 0.07 0.00 0.00 0.00 54.88

2. विकल्प '-P' (प्रोसेसर नंबर इंगित करें) और 'ALL' के साथ mpstat का उपयोग करने से 0 से शुरू करके एक-एक करके सभी CPU के बारे में आंकड़े प्रदर्शित होंगे। 0 पहला होगा।

tecmint@tecmint ~ $ mpstat -P ALL
Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
12:29:26 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
12:29:26 IST all 37.33 0.01 4.57 2.58 0.00 0.07 0.00 0.00 0.00 55.44
12:29:26 IST 0 37.90 0.01 4.96 2.62 0.00 0.03 0.00 0.00 0.00 54.48
12:29:26 IST 1 36.75 0.01 4.19 2.54 0.00 0.11 0.00 0.00 0.00 56.40

3. N सेकंड अंतराल के बाद N संख्या के पुनरावृत्ति के लिए प्रत्येक cpu के औसत के साथ आंकड़े प्रदर्शित करने के लिए निम्न कमांड का उपयोग करें।

tecmint@tecmint ~ $ mpstat -P ALL 2 5
Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
12:36:21 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
12:36:23 IST all 53.38 0.00 2.26 0.00 0.00 0.00 0.00 0.00 0.00 44.36
12:36:23 IST 0 46.23 0.00 1.51 0.00 0.00 0.00 0.00 0.00 0.00 52.26
12:36:23 IST 1 60.80 0.00 3.02 0.00 0.00 0.00 0.00 0.00 0.00 36.18
... (अधिक आउटपुट)

4. विकल्प 'I' प्रति प्रोसेसर इंटरप्ट सांख्यिकी के बारे में कुल संख्या प्रिंट करेगा।

tecmint@tecmint ~ $ mpstat -I
Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
12:39:56 IST CPU intr/s
12:39:56 IST all 651.04
12:39:56 IST CPU 0/s 1/s 6/s 8/s 9/s 12/s 16/s 17/s 20/s 21/s 22/s 23/s 45/s 46/s 47/s NMI/s LOC/s SPU/s PMI/s IWI/s RTR/s RES/s CAL/s TLB/s TRM/s THR/s MCE/s MCP/s ERR/s MIS/s
12:39:56 IST 0 76.27 1.73 0.00 0.00 0.42 0.33 0.00 0.06 11.46 0.00 0.00 0.01 7.62 1.87 0.05 0.33 182.26 0.00 0.33 3.03 0.00 22.66 0.16 5.14 0.00 0.00 0.00 0.00 0.00 0.00
... (अधिक आउटपुट)

5. उपरोक्त सभी जानकारी एक कमांड में प्राप्त करें यानी "-u -I ALL -p ALL" के बराबर।

tecmint@tecmint ~ $ mpstat -A
... (पूर्ण आउटपुट)

pidstat - प्रोसेस और कर्नेल थ्रेड सांख्यिकी

यह प्रोसेस निगरानी और वर्तमान थ्रेड के लिए उपयोग किया जाता है, जिन्हें कर्नेल द्वारा प्रबंधित किया जा रहा है। pidstat चाइल्ड प्रोसेस और थ्रेड की स्थिति भी जांच सकता है।

सिंटैक्स
# pidstat <OPTIONS> [INTERVAL] [COUNT]

6. बिना किसी आर्गुमेंट के pidstat कमांड का उपयोग करने से सभी सक्रिय कार्य प्रदर्शित होंगे।

tecmint@tecmint ~ $ pidstat
Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
12:47:24 IST UID PID %usr %system %guest %CPU CPU Command
12:47:24 IST 0 1 0.01 0.12 0.00 0.13 1 init
... (अधिक प्रक्रियाएं)

7. विकल्प '-p' (प्रोसेस) का उपयोग करके सभी सक्रिय और निष्क्रिय कार्यों को प्रिंट करें।

tecmint@tecmint ~ $ pidstat -p ALL
... (सभी प्रक्रियाएं सूचीबद्ध)

8. '-d 2' विकल्प के साथ pidstat कमांड का उपयोग करके, हम I/O सांख्यिकी प्राप्त कर सकते हैं और 2 ताज़ा आंकड़े प्राप्त करने के लिए सेकंड में अंतराल है। यह विकल्प ऐसी स्थिति में उपयोगी हो सकता है, जहां आपका सिस्टम भारी I/O से गुजर रहा है और आप उच्च संसाधनों का उपभोग करने वाली प्रक्रियाओं के बारे में सुराग प्राप्त करना चाहते हैं।

tecmint@tecmint ~ $ pidstat -d 2
Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
03:26:53 EDT PID kB_rd/s kB_wr/s kB_ccwr/s Command
03:26:55 EDT PID kB_rd/s kB_wr/s kB_ccwr/s Command
03:26:57 EDT 574 0.00 148.00 2.00 miniserv.pl
... (अधिक आउटपुट)

9. अंतराल 2 सेकंड पर 3 बार प्रोसेस आईडी 4164 के बारे में सभी थ्रेड के साथ CPU सांख्यिकी जानने के लिए विकल्प '-t' (चयनित प्रक्रिया के आंकड़े प्रदर्शित करें) के साथ निम्न कमांड का उपयोग करें।

tecmint@tecmint ~ $ pidstat -t -p 4164 2 3
Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
01:09:06 IST UID TGID TID %usr %system %guest %CPU CPU Command
01:09:08 IST 1000 4164 - 22.00 1.00 0.00 23.00 1 firefox
01:09:08 IST 1000 - 4164 20.00 0.50 0.00 20.50 1 |__firefox
... (थ्रेड विवरण)

10. ' -rh ' विकल्प का उपयोग करें, उन प्रक्रियाओं की मेमोरी उपयोग के बारे में जानने के लिए जो 2 सेकंड अंतराल में अपने उपयोग को बार-बार बदलते हैं।

tecmint@tecmint ~ $ pidstat -rh 2 3
Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
# Time UID PID minflt/s majflt/s VSZ RSS %MEM Command
1409816695 1000 3958 3378.22 0.00 707420 215972 5.32 cinnamon
... (अधिक आउटपुट)

11. " VB " स्ट्रिंग वाली सभी प्रक्रिया को प्रिंट करने के लिए, थ्रेड देखने के लिए '-t' विकल्प का उपयोग करें।

tecmint@tecmint ~ $ pidstat -G VB
... (आउटपुट)

12. रियलटाइम प्राथमिकता और शेड्यूलिंग जानकारी प्राप्त करने के लिए विकल्प '-R' का उपयोग करें।

tecmint@tecmint ~ $ pidstat -R
Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
01:09:06 IST UID PID prio policy Command
01:09:08 IST 1000 3 99 FIFO migration/0
... (आउटपुट)

यहां, मैं Iostat यूटिलिटी के बारे में कवर नहीं करने जा रहा हूँ, क्योंकि हम पहले से ही इसे कवर कर चुके हैं। कृपया "लिनक्स प्रदर्शन निगरानी Vmstat और Iostat के साथ" पर एक नज़र डालें ताकि iostat के बारे में सभी विवरण प्राप्त कर सकें।

sar - सिस्टम गतिविधि रिपोर्टर

"sar" कमांड का उपयोग करके, हम पूरे सिस्टम के प्रदर्शन के बारे में रिपोर्ट प्राप्त कर सकते हैं। यह हमें सिस्टम बॉटलनेक का पता लगाने और इन कष्टप्रद प्रदर्शन मुद्दों के समाधान खोजने में मदद कर सकता है।

लिनक्स कर्नेल आंतरिक रूप से कुछ काउंटर रखता है, जो सभी अनुरोधों, उनके पूरा होने का समय और I/O ब्लॉक काउंट आदि का ट्रैक रखता है। इस सभी जानकारी से, sar इन अनुरोधों की दर और अनुपात की गणना करता है ताकि बॉटलनेक क्षेत्रों के बारे में पता लगाया जा सके।

sar के बारे में मुख्य बात यह है कि यह एक अवधि के समय पर सभी गतिविधियों की रिपोर्ट करता है। इसलिए, सुनिश्चित करें कि sar उचित समय पर डेटा एकत्र करता है (दोपहर के भोजन के समय या सप्ताहांत पर नहीं।:))

13. sar को आमंत्रित करने के लिए निम्न एक बुनियादी कमांड है। यह आपकी वर्तमान डायरेक्टरी में "sarfile" नाम की एक फाइल बनाएगा। विकल्प '-u' CPU विवरण के लिए है और 2 सेकंड के अंतराल पर 5 रिपोर्ट एकत्र करेगा।

tecmint@tecmint ~ $ sar -u -o sarfile 2 5
Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
01:42:28 IST CPU %user %nice %system %iowait %steal %idle
01:42:30 IST all 36.52 0.00 3.02 0.00 0.00 60.45
01:42:32 IST all 43.32 0.00 5.04 0.00 0.00 51.64
... (अधिक आउटपुट)
Average: all 46.30 0.00 3.93 0.00 0.00 49.77

14. उपरोक्त उदाहरण में, हमने sar को इंटरैक्टिव रूप से आमंत्रित किया है। हमारे पास इसे क्रॉन का उपयोग करके स्क्रिप्ट /usr/local/lib/sa1 और /usr/local/lib/sa2 के माध्यम से नॉन-इंटरैक्टिव रूप से आमंत्रित करने का विकल्प भी है (यदि आपने इंस्टॉलेशन समय के दौरान /usr/local को प्रीफिक्स के रूप में उपयोग किया है)।

  1. /usr/local/lib/sa1 एक शेल स्क्रिप्ट है जिसका उपयोग हम क्रॉन शेड्यूलिंग के लिए कर सकते हैं जो दैनिक बाइनरी लॉग फाइल बनाएगा।
  2. /usr/local/lib/sa2 एक शेल स्क्रिप्ट है जो बाइनरी लॉग फाइल को मानव-पठनीय रूप में बदल देगा।

इसे नॉन-इंटरैक्टिव बनाने के लिए निम्न क्रॉन एंट्री का उपयोग करें:

# हर 10 मिनट में डेटा एकत्र करने के लिए sa1 शेल स्क्रिप्ट चलाएं
*/2 * * * * /usr/local/lib/sa/sa1 2 10
# 23:53 पर मानव पठनीय प्रारूप में दैनिक रिपोर्ट उत्पन्न करें
53 23 * * * /usr/local/lib/sa/sa2 -A

बैक-एंड पर sa1 स्क्रिप्ट sadc (सिस्टम एक्टिविटी डेटा कलेक्टर) यूटिलिटी को एक विशेष अंतराल पर डेटा लाने के लिए कॉल करेगी। sa2 मानव पठनीय रूप में बाइनरी लॉग फाइल को बदलने के लिए sar को कॉल करेगा।

15. रन क्यू लंबाई, प्रक्रियाओं की कुल संख्या और लोड औसत की जांच करें '-q' विकल्प का उपयोग करके।

tecmint@tecmint ~ $ sar -q 2 5
Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
02:00:44 IST runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
02:00:46 IST 1 431 1.67 1.22 0.97 0
... (अधिक आउटपुट)
Average: 2 431 1.68 1.23 0.97 0

16. माउंटेड फाइल सिस्टम के बारे में आंकड़े जांचें '-F' का उपयोग करके।

tecmint@tecmint ~ $ sar -F 2 4
... (फाइलसिस्टम आंकड़े)

17. '-n DEV' का उपयोग करके नेटवर्क आंकड़े देखें।

tecmint@tecmint ~ $ sar -n DEV 1 3 | egrep -v lo
Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
02:11:59 IST IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
02:12:00 IST wlan0 8.00 10.00 1.23 0.92 0.00 0.00 0.00
... (अधिक आउटपुट)

18. '-d' का उपयोग करके iostat की तरह ब्लॉक डिवाइस आंकड़े देखें।

tecmint@tecmint ~ $ sar -d 1 3
Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
02:13:17 IST DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
02:13:18 IST dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
... (अधिक आउटपुट)

19. मेमोरी आंकड़े प्रिंट करने के लिए '-r' विकल्प का उपयोग करें।

tecmint@tecmint ~ $ sar -r 1 3
Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
02:14:29 IST kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
02:14:30 IST 1465660 2594840 63.90 133052 1549644 3710800 45.35 1133148 1359792 392
... (अधिक आउटपुट)
Average: 1469165 2591335 63.82 133057 1549824 3710531 45.34 1129739 1359987 677

20. 'safd -d' का उपयोग करके, हम डेटा को उस प्रारूप में निकाल सकते हैं जिसे डेटाबेस का उपयोग करके संसाधित किया जा सकता है।

tecmint@tecmint ~ $ safd -d /var/log/sa/sa20140903 -- -n DEV | grep -v lo
# hostname;interval;timestamp;IFACE;rxpck/s;txpck/s;rxkB/s;txkB/s;rxcmp/s;txcmp/s;rxmcst/s;%ifutil
tecmint;2;2014-09-03 07:53:29 UTC;eth0;1.50;0.00;0.13;0.00;0.00;0.00;0.00;0.00
... (CSV डेटा)

आप इसे एक CSV में भी सेव कर सकते हैं और फिर नीचे दिखाए अनुसार प्रेजेंटेशन जैसी चीजों के लिए चार्ट बना सकते हैं।

20 आवश्यक Sysstat कमांड (mpstat, pidstat, iostat, sar) के साथ लिनक्स प्रदर्शन निगरानी में महारत हासिल करें

अभी के लिए बस इतना ही, प्रत्येक विकल्प के बारे में अधिक जानकारी के लिए मैन पेज देख सकते हैं और अपने बहुमूल्य टिप्पणियों के साथ लेख के बारे में बताना न भूलें।

  1. Android SQLite में करंट टाइमस्टैम्प के साथ मान कैसे स्टोर करें? Android SQLite में करंट टाइमस्टैम्प के साथ मान कैसे स्टोर करें?

    Android में SQLite डेटाबेस SQLite एक ओपन-सोर्स SQL डेटाबेस है जो डेटा को डिवाइस पर टेक्स्ट फ़ाइल में स्टोर करता है। Android में बिल्ट-इन SQLite इम्प्लीमेंटेशन आता है। उदाहरण: डिफ़ॉल्ट करंट टाइमस्टैम्प के साथ डेटा स्टोरेज यह उदाहरण दर्शाता है कि SQLite टेबल में DEFAULT CURRENT_TIMESTAMP का उपयोग करक

  1. C++ में अविभाजित ग्राफ के सभी संयोजी घटकों में न्यूनतम तत्वों का योग C++ में अविभाजित ग्राफ के सभी संयोजी घटकों में न्यूनतम तत्वों का योग

    इस समस्या में, हमें N संख्याओं की एक सरणी arr दी गई है जहां arr[i] (i+1)वें नोड को दर्शाता है। साथ ही, M जोड़े किनारे हैं जहां u और v किनारे से जुड़े नोड्स को दर्शाते हैं। हमारा कार्य एक प्रोग्राम बनाना है जो अविभाजित ग्राफ के सभी संयोजी घटकों में न्यूनतम तत्वों का योग निकाले। यदि एक नोड की किसी अन

  1. XML वैल्यूज़ फाइल में ड्रॉएबल रिसोर्स ID को ऐरे में कैसे स्टोर करें? XML वैल्यूज़ फाइल में ड्रॉएबल रिसोर्स ID को ऐरे में कैसे स्टोर करें?

    यह उदाहरण दर्शाता है कि ड्रॉएबल रिसोर्स IDs (R.drawable.*) को XML फाइल में integer-array के रूप में कैसे स्टोर करें और उन्हें कोड में एक्सेस करें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में नया प्रोजेक्ट बनाएं और res/drawable/ में कुछ इमेज (image1, image2, image3) रखें। चरण 2: arrays.xml में ऐर