सवाल मैं लिनक्स पर हार्ड डिस्क लोड की निगरानी कैसे कर सकता हूं?


क्या लिनक्स पर हार्ड डिस्क लोड की निगरानी करने के लिए कोई अच्छी कमांड लाइन उपयोगिता है? कुछ इस तरह top लेकिन फिर डिस्क गतिविधि की निगरानी i.s.o. सि पि यु का उपयोग।

अधिक विशेष रूप से, मुझे संदेह है कि प्रोग्राम (एस) के विभिन्न हिस्सों पर कई अनुकूलन के बाद कुछ (भारी लोड) सर्वरों के लिए, अभी बाधा बस डिस्क पर फ़ाइलों को लॉगिंग कर रही है। लेकिन मुझे यह आकलन करना बहुत मुश्किल लगता है कि सर्वर कितने ट्रैफ़िक को संभाल सकता है।

मेरा आदर्श उपकरण ऐसा कुछ होगा जो प्रिंट करता है "आप अभी अपनी डिस्क बैंडविड्थ का 35% उपयोग कर रहे हैं"। कोई विचार?


88
2018-05-18 13:56


मूल


बिल्कुल सही सवाल, वही है जो मैं ढूंढ रहा था =) - rafa.ferreira
सीएसएफएस को सीधे पढ़ना संभव है, जैसे /sys/block/sda/stat। फ़ील्ड # 1 कुल # पढ़ता है, फ़ील्ड # 5 लिखने की कुल # है, फ़ील्ड # 9 प्रगति पर I / O संचालन की संख्या है। और देखें kernel.org/doc/Documentation/iostats.txt मान लंबे समय तक हस्ताक्षरित हैं और लपेट सकते हैं। - sastanin
यह एक बहुत अच्छा सवाल है क्योंकि हम हमेशा Plesk सर्वर पर इस समस्या से जूझ रहे हैं। हालांकि, क्या गुम है how do you do it with SNMP?। लॉग इन करना और सामान की जांच करना ठीक है, लेकिन वास्तव में ऐतिहासिक डेटा की आवश्यकता है। - Eugene van der Merwe
unix.stackexchange.com/questions/55212/... - Ciro Santilli 新疆改造中心 六四事件 法轮功


जवाब:


आप इसका उपयोग करके इसका एक बहुत अच्छा उपाय प्राप्त कर सकते हैं iostat उपकरण।

% iostat -dx /dev/sda 5

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.78    11.03    1.19    2.82    72.98   111.07    45.80     0.13   32.78   1.60   0.64

डिस्क उपयोग अंतिम कॉलम में सूचीबद्ध है। इसे परिभाषित किया गया है

CPU समय का प्रतिशत जिसके दौरान डिवाइस पर I / O अनुरोध जारी किए गए थे   (डिवाइस के लिए बैंड-चौड़ाई उपयोग)। डिवाइस संतृप्ति   तब होता है जब यह मान 100% के करीब होता है।


77
2018-05-18 14:15



डेबियन में यह कौन सा पैकेज रहता है, यदि कोई है? apt-cache dump Iostat के लिए कुछ भी नहीं चालू किया - hBy2Py
@ ब्रायन: यह sysstat पैकेज में है (वैसे भी यम के माध्यम से ...) - Joe
@ जो निफ्टी, धन्यवाद! - hBy2Py
आरएचईएल 6.5 पर यह नहीं मिला। क्या यह आरएचईएल के लिए उपलब्ध है? - Hazok
क्या यह देरी से जारी रखने के बिना काम कर सकता है? डेटा प्राप्त करने के लिए एक ही उदाहरण चलाने की कोशिश कर एक ही संख्या को संभवतः प्राप्त करता है क्योंकि यह नमूने नहीं ले सकता है ??? - Wilf


iotop शीर्ष का एक संस्करण है जो यह देखता है कि प्रत्येक प्रक्रिया का उपयोग कितना IO है। यह मानक उबंटू भंडारों में है; मुझे नहीं पता कि यह आरएचईएल या फेडोरा में है, लेकिन यह होना चाहिए।

enter image description here

पुराने कर्नेल के लिए (CentOS 5.x या RHEL 5.x कहें) जो iotop का समर्थन नहीं करते हैं, इसके बजाय topio का उपयोग करें (यहां दस्तावेज़ित: http://yong321.freeshell.org/freeware/pio.html#linux। यह आईओ आंकड़ों के लिए / proc // io पर निर्भर करता है और आईओपोट के समान कार्यक्षमता प्रदान करता है। अधिक जानकारी के लिए लिंक देखें।


75
2018-05-18 14:14



दरअसल, यह उबंटू में डिफ़ॉल्ट रूप से स्थापित नहीं है, इसलिए कोई भी जारी कर सकता है: इसे प्राप्त करने के लिए इंस्टॉल करें Iup इंस्टॉल करें - Moshe
iotop को 2.6.20 से अधिक कर्नेल की आवश्यकता होती है, जो दुर्भाग्यवश RedHat el4 और el5 दोनों को नियंत्रित करता है। - Dave Cheney
रेडहाट 5.4 के अनुसार, आईओपेट काम करने के लिए आवश्यक बिट्स को वापस भेज दिया गया है। का आनंद लें! - Dave Cheney
यह फेडोरा में है :)। - jamie


टिप्पणियों में सस्टानिन द्वारा सुझाए गए अनुसार, आप सीधे दिए गए मूल्यों को संसाधित कर सकते हैं /sys/block/sda/stat या /proc/diskstats। यह सहायक हो सकता है जब किसी भी अन्य उल्लिखित टूल उपलब्ध नहीं हैं और आप उन्हें आसानी से इंस्टॉल नहीं कर सकते हैं।

उदाहरण के लिए (IIUC) इस तरह कुछ (बैश में) प्रति सेकंड पढ़ने की संख्या देना चाहिए:

OLD=`awk '{print $1}' /sys/block/sda/stat` # First field is number of read I/Os processed
DT=1
for ii in `seq 1 10`
do
    sleep $DT
    NEW=`awk '{print $1}' /sys/block/sda/stat`
    echo $((($NEW-$OLD)/$DT))
    OLD=$NEW
done

देख https://www.kernel.org/doc/Documentation/iostats.txt तथा https://www.kernel.org/doc/Documentation/block/stat.txt दस्तावेज के लिए।


12
2017-07-22 10:16





आपको एक नज़र रखना चाहिए ऊपर, जो आईपोटो / टॉप / इफटॉप की शक्ति को एक साथ जोड़ता है, और आपके सिस्टम पर महत्वपूर्ण भागों को हाइलाइट करता है।


5
2018-03-01 04:42





मैं नींबू उपकरण को देखने की सिफारिश करता हूं। यह आपको कई सिस्टम पैरामीटर पर लाइव लोड दिखाएगा साथ ही साथ बाद में किसी भी फाइल के लिए डेटा रिकॉर्डिंग करेगा। यह एक मुफ़्त उपकरण उपलब्ध है यहाँ:


4
2018-05-18 15:52





यह पता लगाने के लिए कि आप अपनी कुल बैंडविड्थ का उपयोग कर सकते हैं hdparm -T /dev/sda बफर कैश (फ़ाइलियो) प्रदर्शन का परीक्षण करने के लिए hdparm -t /dev/sda डिवाइस पढ़ने के प्रदर्शन का परीक्षण करने के लिए

उदाहरण: मेरा लैपटॉप सैटा डिस्क से 82 एमबी / सेकंड और कैश से 2 जीबी / सेकेंड प्राप्त करता है। मेरे डेकस्टॉप को कैश से 12 जीबी / सेकंड और एचडब्ल्यू RAID सरणी से 500 एमबी / सेकंड मिलता है। मुझे संदेह है कि उन अंतिम संख्या सर्वर वर्ग हार्डवेयर पर दोगुना हो सकती है।

256 से अधिक readahead सेट करें, 4096 मेरे लिए सबसे अच्छा काम करता है

for i in 128 256 512 1024 2048 4096 8192 16384 32768  
do  
hdparm --setra $i  
  for j in 1 2 4 8 16 32  
  do  
  time dd if=/dev/sda of=/dev/null bs="$j"k  count=<fixthis> 1GB / blocksize  
  done  
done  

अलग-अलग ब्लॉक आकारों और विभिन्न रीड-फॉरवर्ड पर 1 जीबी पढ़ने के समय


4
2018-05-18 15:58



एसएफ में आपका स्वागत है। आप स्ट्रिंग्स या इंडेंटिंग पैराग्राफ के आसपास बैकक्वॉट डालकर अपनी पोस्ट में कोड हाइलाइटिंग का उपयोग कर सकते हैं। - ℝaphink
दो चीजें - 1) --setra अब है -a, और 2), द hdparm -{T,t} आदेश के अनुसार केवल डिस्क पढ़ने को जारी करता है strace, तो nondestructive हैं। (इंटरनेट पर सलाह के बारे में मानक अस्वीकरण लागू होता है) - i336_


हार्ड डिस्क लोड दिखाने के लिए मानक उपकरण है iostat

यह आपको नहीं बताएगा कि आप कितनी% आयु डिस्क बैंडविड्थ का उपयोग कर रहे हैं, क्योंकि यह नहीं जानता कि आपकी डिस्क कितनी बैंडविड्थ है। किसी भी मामले में, आपकी डिस्क में केवल संगत डेटा के बड़े स्थानान्तरण के लिए निर्माता का उद्धृत आंकड़ा होता है।


3
2018-05-18 14:02





मुझे लगता है कि आरआरडीओओएल आपको जो चाहिए वो करना चाहिए यहाँ यह सिस्टम डेटा डंप करने के लिए एक डिमन का उपयोग करता है और फिर आपको इसे संसाधित करने की अनुमति देता है। सिस्टम लोड को मापने के लिए मैंने अक्सर ग्राफ का उत्पादन करने के लिए इसका इस्तेमाल किया है।


2
2018-05-18 14:03