लिनक्स में कुल पढ़ने और कुल लिखने के लिए IOPS कैसे प्राप्त करें?


32

मैं लिनक्स में अलग से IOPS कैसे पढ़ और लिख सकता हूँ, कमांड लाइन या प्रोग्रामेटिक तरीके से? मैंने sysstatपैकेज स्थापित किया है।

कृपया मुझे बताएं कि मैं sysstatपैकेज कमांड का उपयोग करके अलग से इनकी गणना कैसे करूं ।

या, क्या फ़ाइल सिस्टम का उपयोग करके उनकी गणना करना संभव है?

पूर्व: /proc या /sysया/dev

जवाबों:


46

iostatsysstatपैकेज का हिस्सा है , जो यदि वांछित है, तो समग्र आईओपी दिखाने में सक्षम है, या उन्हें रीड / राइट्स द्वारा अलग दिखाया गया है।

iostat-D ध्वज के साथ चलाने के लिए केवल डिवाइस जानकारी पृष्ठ दिखाने के लिए, और -x विस्तृत जानकारी (अलग पढ़ने / लिखने के आँकड़े) के लिए। आप उस डिवाइस को निर्दिष्ट कर सकते हैं जिसे आप जानकारी चाहते हैं बस इसे कमांड लाइन पर बाद में जोड़कर।

iostat -dxआउटपुट को महसूस करने के लिए सारांश को देखने और देखने का प्रयास करें । आप iostat -dx 1लगातार ताज़ा आउटपुट दिखाने के लिए भी उपयोग कर सकते हैं , जो समस्या निवारण या लाइव मॉनिटरिंग के लिए उपयोगी है,

उपयोग करते हुए awk, फ़ील्ड 4 आपको रीड्स / सेकंड देगा , जबकि फ़ील्ड 5 आपको लिख / सेकंड देगा

केवल दूसरी / पढ़ता है:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4; }'

केवल लेखन / सेकंड:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $5; }'

पढ़ता है / सेक और लिखता है / एक स्लैश के साथ अलग किया गया सेकेंड:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4"/"$5; }'

कुल मिलाकर IOPS (ज्यादातर लोग किस बारे में बात करते हैं):

iostat -d <your disk name> | grep <your disk name> | awk '{ print $2; }'

उदाहरण के लिए, मेरी मुख्य ड्राइव, / dev / sda के साथ अंतिम कमांड को चलाना, इस तरह दिखता है:

dan@daneel ~ $ iostat -dx sda | grep sda | awk '{ print $4"/"$5; }' 15.59/2.70

ध्यान दें कि इसे चलाने के लिए आपको रूट होने की आवश्यकता नहीं है, यह गैर-विशेषाधिकार प्राप्त उपयोगकर्ताओं के लिए उपयोगी है।

TL; DR: यदि आप बस में रुचि रखते हैं sda, तो निम्न कमांड आपको समग्र IOPS देगा sda:

iostat -d sda | grep sda | awk '{ print $2; }'

यदि आप सभी उपकरणों में IOPS जोड़ना चाहते हैं , तो आप फिर से awk का उपयोग कर सकते हैं:

iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}'

यह इस तरह उत्पादन का उत्पादन करता है:

dan@daneel ~ $ iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}' 18.88


धन्यवाद Mr.Dannel इसकी उपयोगी है। अगर मैं पूर्ण प्रणाली प्राप्त करना चाहता / चाहती हूं तो IOPS कैसे पढ़ें / लिखें?
श्स

जब मैं दौड़ता iostat -dx 1हूं तो मुझे Linux 2.6.35.14-106.fc14.i686 (shashi) 08/24/2015 _i686_ (2 CPU) Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 2.46 13.80 2.27 2.03 136.26 123.91 60.53 0.11 25.77 4.43 1.91 dm-0 0.00 0.00 2.35 0.77 93.07 6.11 31.86 0.17 53.73 2.59 0.81 dm-1 0.00 0.00 1.02 2.83 8.14 22.66 8.00 0.83 214.34 0.60 0.23 dm-2 0.00 0.00 1.37 11.89 34.77 95.14 9.80 1.67 126.06 0.84 1.11डीएम -०, डीएम -१, डीएम -२ के लिए इस तरह एन्स मिलते हैं , क्या मुझे जोड़ना चाहिए?
श्स

मैंने एक समग्र टेम्पलेट और के लिए एक उदाहरण के साथ उत्तर अपडेट किया है sda। यदि आप अपनी हार्ड ड्राइव के लिए IOPS देखना चाहते हैं, तो उस समग्र IOPS ( iostat -d sda | grep sda | awk '{ print $2; }') के लिए अंतिम कमांड का उपयोग करें
Daneel

नहीं, मैं 1 उत्तर में यू उल्लेख के रूप में अलग से चाहता हूं। थोड़ा भ्रमित होने के साथ dm-*मैंने पूछा, मुझे उन विभाजनों के अलावा प्रदर्शन करने की आवश्यकता है
shas

अच्छा ठीक है। प्रत्येक dm-xडिवाइस क्या है, यह जांचने के लिए आप निम्नलिखित कमांड का उपयोग कर सकते हैं : lvdisplay|awk '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'- मैं इस के साथ उत्तर को अपडेट करूंगा, साथ ही परिणाम कैसे जोड़ सकता हूं।
डैनियल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.