लिनक्स में डिस्क I/O प्रदर्शन की निगरानी के लिए सर्वोत्तम उपकरण


संक्षिप्त: इस गाइड में, हम Linux सर्वर पर डिस्क I/O गतिविधि (प्रदर्शन) की निगरानी और डिबगिंग के लिए सर्वोत्तम टूल पर चर्चा करेंगे।

लिनक्स सर्वर पर मॉनिटर करने के लिए एक प्रमुख प्रदर्शन मीट्रिक डिस्क I/O (इनपुट/आउटपुट) गतिविधि है, जो एक Linux सर्वर के कई पहलुओं को महत्वपूर्ण रूप से प्रभावित कर सकती है, विशेष रूप से फ़ाइलों या डेटा की डिस्क को सहेजने या पुनर्प्राप्त करने की गति (विशेषकर) डेटाबेस सर्वर पर)। यह अनुप्रयोगों और सेवाओं के प्रदर्शन पर एक लहर प्रभाव डालता है।

1. iostat - डिवाइस इनपुट और आउटपुट सांख्यिकी दिखाता है

sysstat पैकेज में सिस्टम मॉनिटरिंग यूटिलिटीज, जो एक व्यापक रूप से उपयोग की जाने वाली उपयोगिता है जिसे CPU आँकड़ों और I/O आँकड़ों को ब्लॉक डिवाइस और विभाजन के लिए रिपोर्ट करने के लिए डिज़ाइन किया गया है।

अपने Linux सर्वर पर iostat का उपयोग करने के लिए, आपको अपने Linux सिस्टम पर अपने Linux वितरण के लिए लागू कमांड चलाकर sysstat पैकेज स्थापित करने की आवश्यकता है।

$ sudo apt install sysstat          [On Debian, Ubuntu and Mint]
$ sudo yum install sysstat          [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a app-admin/sysstat  [On Gentoo Linux]
$ sudo apk add sysstat              [On Alpine Linux]
$ sudo pacman -S sysstat            [On Arch Linux]
$ sudo zypper install sysstat       [On OpenSUSE]    

एक साधारण उपकरण उपयोग रिपोर्ट दिखाने के लिए, -d कमांड लाइन विकल्प के साथ iostat चलाएँ। आमतौर पर, पहली रिपोर्ट सिस्टम स्टार्टअप (बूट समय) के बाद के समय के बारे में आंकड़े प्रदान करती है और प्रत्येक बाद की रिपोर्ट पिछली रिपोर्ट के बाद के समय से संबंधित होती है।

विस्तृत सांख्यिकी रिपोर्ट के लिए -x और प्रत्येक रिपोर्ट के लिए समय सक्षम करने के लिए -t ध्वज का उपयोग करें। इसके अलावा, यदि आप रिपोर्ट आउटपुट में बिना किसी गतिविधि के उपकरणों को हटाना चाहते हैं, तो -z ध्वज जोड़ें:

# iostat -d -t 
OR
# iostat -d -x -t 

प्रति सेकंड ब्लॉक के विपरीत किलोबाइट प्रति सेकंड में आंकड़े प्रदर्शित करने के लिए -k ध्वज जोड़ें, या प्रति सेकंड मेगाबाइट में आंकड़े प्रदर्शित करने के लिए -m ध्वज का उपयोग करें।

# iostat -d -k
OR
# iostat -d -m

iostat x सेकंड के अंतराल पर निरंतर डिवाइस रिपोर्ट भी प्रदर्शित कर सकता है। उदाहरण के लिए, निम्न आदेश दो सेकंड के अंतराल पर रिपोर्ट प्रदर्शित करता है:

# iostat -d 2

पिछले आदेश से संबंधित, आप x सेकंड के अंतराल पर n रिपोर्ट की संख्या प्रदर्शित कर सकते हैं। निम्न आदेश दो सेकंड के अंतराल पर 10 रिपोर्ट प्रदर्शित करेगा। वैकल्पिक रूप से, आप बाद के विश्लेषण के लिए रिपोर्ट को फ़ाइल में सहेज सकते हैं:

# iostat -d 2 10
OR
# iostat -d 2 10 > disk_io_report.txt &

रिपोर्ट कॉलम के बारे में अधिक जानकारी के लिए iostat मैन पेज पढ़ें:

# man iostat

2. सर - लिनक्स सिस्टम गतिविधि दिखाएं

sar एक अन्य उपयोगी उपयोगिता है जो sysstat पैकेज के साथ आती है, जिसका उद्देश्य सिस्टम गतिविधि जानकारी एकत्र करना, रिपोर्ट करना या सहेजना है। इससे पहले कि आप इसका उपयोग शुरू कर सकें, आपको इसे निम्नानुसार सेट करना होगा।

सबसे पहले, इसे /etc/default/sysstat फ़ाइल में डेटा एकत्र करने के लिए सक्षम करें।

# vi /etc/default/sysstat

निम्न पंक्ति को देखें और दिखाए गए अनुसार मान को सत्य में बदलें।

ENABLED="true"

इसके बाद, आपको sysstat क्रॉन जॉब्स में परिभाषित डेटा संग्रह अंतराल को कम करने की आवश्यकता है। डिफ़ॉल्ट रूप से, यह हर 10 मिनट पर सेट होता है, आप इसे हर 2 मिनट में कम कर सकते हैं।

आप इसे /etc/cron.d/sysstat फ़ाइल में कर सकते हैं:

# vi /etc/cron.d/sysstat

फ़ाइल को सहेजें और इसे बंद करें।

अंत में, निम्नलिखित systemctl कमांड का उपयोग करके sysstat सेवा को सक्षम और प्रारंभ करें:

# systemctl enable --now sysstat.service
# systemctl enable sysstat.service

इसके बाद, sar रिपोर्ट देखना शुरू करने के लिए 2 मिनट तक प्रतीक्षा करें। I/O और स्थानांतरण दर आंकड़ों की रिपोर्ट करने के लिए sar कमांड और -b कमांड लाइन विकल्प का उपयोग करें और प्रत्येक ब्लॉक डिवाइस के लिए गतिविधि की रिपोर्ट करने के लिए -d का उपयोग करें जैसा कि दिखाया गया है।

# sar -d -b

3. iotop - मॉनिटर लिनक्स डिस्क I/O उपयोग

iotop के समान एक साधारण उपयोगिता है जो आपको प्रति-प्रक्रिया के आधार पर डिस्क I/O गतिविधि और उपयोग की निगरानी करने में सक्षम बनाती है।

आप इसे अपने लिनक्स सर्वर पर निम्नानुसार स्थापित कर सकते हैं (अपने लिनक्स वितरण के लिए उपयुक्त कमांड चलाना याद रखें):

$ sudo apt install iotop             [On Debian, Ubuntu and Mint]
$ sudo yum install iotop             [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a sys-processs/iotop  [On Gentoo Linux]
$ sudo apk add iotop                 [On Alpine Linux]
$ sudo pacman -S iotop               [On Arch Linux]
$ sudo zypper install iotop          [On OpenSUSE]    

प्रति-प्रक्रिया I/O गतिविधि की निगरानी के लिए, आप बिना किसी तर्क के iotop चला सकते हैं। डिफ़ॉल्ट रूप से, पुनरावृत्तियों के बीच की देरी 1 सेकंड है। आप इसे -d ध्वज का उपयोग करके बदल सकते हैं।

# iotop
OR
# iotop -d 2

iotop डिफ़ॉल्ट रूप से एक प्रक्रिया के सभी धागे प्रदर्शित करेगा। इस व्यवहार को बदलने के लिए ताकि यह केवल प्रक्रियाओं को दिखाए, -P कमांड लाइन विकल्प का उपयोग करें।

# iotop -P

साथ ही, -a विकल्प का उपयोग करके, आप इसे बैंडविड्थ दिखाने के बजाय संचित I/O प्रदर्शित करने का निर्देश दे सकते हैं। इस मोड में, iotop, iotop लागू होने के बाद से की गई I/O प्रक्रियाओं की मात्रा को दर्शाता है।

# iotop -P -a

हमारे पास आपके लिए बस इतना ही था! हम इस गाइड या उपरोक्त टूल के बारे में आपके विचार जानना चाहेंगे। नीचे दिए गए फीडबैक फॉर्म के माध्यम से एक टिप्पणी छोड़ें।

आप हमें उन टूल के बारे में भी बता सकते हैं जो आपको लगता है कि इस सूची में गायब हैं, लेकिन यहां प्रदर्शित होने के योग्य हैं।