I / O के कारण उच्च भार EC2 उदाहरण पर Ubuntu 12.04 में प्रतीक्षा करता है


9

मैं Ubuntu सर्वर 12.04 का उपयोग कर रहा हूं, लोड का कारण खोजने में परेशानी हो रही है, मैंने पिछले सप्ताह से सर्वर के प्रतिक्रिया समय में परिवर्तन देखा है

लिनक्स समस्या निवारण पढ़ने के बाद , भाग I: उच्च भार

ऐसा लगता है कि सीपीयू और रैम के साथ कोई समस्या नहीं है, और यह लोड आई / ओ-बाउंड लोड से संबंधित हो सकता है topकमांड का उपयोग करके मुझे आउटपुट मिला है

लोड और मेमोरी उपयोग

यहाँ यह है 97.6%wa, रैम मुफ्त है और कोई स्वैप का उपयोग नहीं करता है।

निम्नलिखित कमांड का आउटपुट है iostatजो बोता है कि वहाँ है89% iowait

ubuntu@ip-my-sys-ubuntu:~$ iostat
Linux 3.2.0-58-virtual (ip-172-31-6-203)    02/19/2015  _x86_64_    (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.05    0.01    3.64   89.50    3.76    0.03

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvdap1           69.91         3.81       964.37     978925  247942876

मैंने भी इस्तेमाल किया, iotopजो ठीक होने के बाद 99% I / O दिखाता है, डिस्क लिखता है कि मैं प्रेक्षक हूं1266 KB/s

यहां छवि विवरण दर्ज करें

तथा

यहां छवि विवरण दर्ज करें

बुरा है? प्रतिक्रिया समय के रूप में कम है। इसके उत्पन्न होने का कारण क्या है?

EDITS जो दूसरों द्वारा पूछे जाते हैं

iftop ओ / पी

                  12.5kb             25.0kb            37.5kb             50.0kb       62.5kb
└─────────────────┴──────────────────┴─────────────────┴──────────────────┴──────────────────
ip-12-1-1-111.ap-southeast-1.  => 115.231.218.130                      0b   2.04kb   522b
                                 <=                                      0b   1.53kb   393b
ip-112-1-1-111.ap-southeast-1.  => 62.snat-111-91-22.hns.net.in      1.52kb  1.52kb  1.72kb
                                 <=                                    208b    208b    262b
ip-112-1-1-111.ap-southeast-1.  => static-mum-120.63.141.177.mtnl.      0b    480b    240b
                                 <=                                      0b    350b    175b
ip-112-1-1-111.ap-southeast-1.  => ip-112-11-1-1.ap-southeast-1.co      0b    118b    178b
                                 <=                                      0b    210b    292b
ip-112-1-1-111.ap-southeast-1.  => static-mum-120.63.194.119.mtnl.      0b      0b    240b
                                 <=                                      0b      0b    175b

TX:             cum:    123kB   peak:   3.72kb               rates:   1.67kb  2.02kb  1.78kb
RX:                    51.5kB           4.88kb                        1.19kb   989b    918b
TOTAL:                  174kB           8.60kb                        2.86kb  2.98kb  2.68kb

का उत्पादन iostat -x -k 5 2

ubuntu@ip-111-11-1-111:~$ iostat -x -k 5 2
Linux 3.2.0-58-virtual (ip-111-11-1-111)        03/04/2015      _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.75    0.01    4.74   22.72    4.06   64.71

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
xvdap1            0.00   263.80    0.42  109.42     7.28  1572.36    28.76     1.92   17.52   17.57   17.52   2.31  25.39

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.97    0.00    4.77   76.34    9.92    0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
xvdap1            0.00    35.69    0.00   85.88     0.00   438.93    10.22   137.55 1612.71    0.00 1612.71  11.11  95.42

@ सोधनशोक बिंदु २

यहां छवि विवरण दर्ज करें

आईटोप-ए

यहां छवि विवरण दर्ज करें


1
99% IOwait 0 डिस्क पढ़ने और लिखने के साथ अच्छा नहीं लगता है। यहाँ serverfault.com/questions/426181/… यह उल्लेख किया गया है, कि I / O न केवल डिस्क गतिविधि, बल्कि नेटवर्क से भी संबंधित हो सकता है। क्या आप इसकी जाँच कर सकते हैं, उदाहरण के लिए, iftop (और अन्य उपकरण भी)?
एंड्री सेपगिन

@AndreySapegin ने iftop जोड़ा
स्ट्रॉ हैट

मुझे लगता है कि डिस्क के साथ समस्या थी, जिस पर AWS इंस्टेंस को तैनात किया गया था .. मैंने वर्तमान आवृत्ति का AMI बनाया और इसका उपयोग करते हुए नए इंस्टेंस को लॉन्च किया .. अब I / O पर कोई अतिरिक्त भार नहीं है
स्ट्रैट हैट

@ स्ट्रॉहैट का मतलब है कि आपको लगता है कि आपके पहले उदाहरण में डिस्क में कुछ गड़बड़ थी?
सब्बटला

@sbrattla नहीं मुझे नहीं लगता। कुछ दिनों के बाद एक ही समस्या सामने आई
स्ट्रॉ हैट

जवाबों:


2

डिस्क को छूने से बचने और अपनी पोस्टफ़िक्स कतार में देखने के लिए अपनी mysql सेवा को ट्यून करें, आपके पास बहुत सारे ईमेल I / O संवेदनशील कतार (यानी आस्थगित, यादृच्छिक पढ़ने के व्यवहार के साथ छोटे itens) में हो सकते हैं।

आपके ईमेल सिस्टम को स्पैमर्स के लिए रिले के रूप में उपयोग किया गया है।

उपसर्ग प्रलेखन पर एक नज़र डालें और अपने एमटीए तक रिले पहुंच को प्रतिबंधित करें।


RDS उदाहरण के लिए mysql चल रहा है काम करेगा?
स्ट्रॉ हैट

1
सॉर्ट करने के लिए मुख्य समस्या यह है कि इट्स की अधिक संख्या के कारण पोस्टऑफिस कतार में आपके आईओपी खाते हैं, आप qshape deferredकमांड के साथ देख सकते हैं ।
fgbreel

postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_limit_maps=proxy:mysql:/etc/zpanel/configs/postfix/mysql-virtual_mailbox_limit_maps.cf
स्ट्रॉ हट

postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1इन त्रुटियों को मिलाqshape deferred
स्ट्रॉ Hat

1
मुझे लगता है कि आपका पोस्टफिक्स गलत हो सकता है, लेकिन आपकी वर्तमान समस्या के लिए, एक नज़र डालें कि आपके पास कितने ईमेल हैं /var/lib/postfix/deferred। उन्हें holdआगे की जांच या सफाई के लिए कतार में ले जाएं ।
fgbreel

1

Iostat और iotop का उपयोग करके इकट्ठा की गई अतिरिक्त जानकारी के बाद संपादित करें
आपकी डिस्क 100% भरी हुई है क्योंकि यह उपलब्ध IOPS से बाहर चल रही है: iostat के अनुसार, आपके पास लगातार 50+ IOPS (85 w / s - 35 मर्ज किए गए w / s) हैं। EC2 उदाहरण, विशेष रूप से सस्ते एक, निरंतर IOPS (30-50 IOPS की सीमा में) पर एक मजबूत टोपी है।

नए iotop आउटपुट के अनुसार, mysql और bounce दोनों IOPS की महत्वपूर्ण मात्रा खा रहे हैं। हालाँकि, iotop का उत्पादन पूर्ण नहीं है, या कम से कम बुरी तरह से सॉर्ट किया गया है। क्या आप IOPS द्वारा एक बार और डिस्क लेखन द्वारा दूसरी बार "iotop -a" को फिर से चला सकते हैं?

मूल उत्तर
मेरी शर्त: "बाउंस" प्रक्रिया कई सिंक्रनाइज़ जारी कर रही है जो अमेज़ॅन द्वारा पेश किए गए वर्चुअल डिस्क डिवाइस को चोक करती है (वैसे, आप किस प्रोफ़ाइल का उपयोग कर रहे हैं? EC2 डिस्क में निरंतर बनाम फट I / O के लिए काफी सख्त नियम हैं)।

वैसे भी, I / O बैंडविड्थ को जलाने की पहचान करना कई बार मुश्किल हो सकता है। जबकि iotop एक बहुत अच्छा उपकरण है, कभी-कभी यह आपको आवश्यक जानकारी नहीं देता है। हमें गहराई में जाने की जरूरत है। तो, इन सलाह का पालन करें:

  1. सबसे पहले, हमें I / O के प्रकार को संसाधित करने और प्रभावित ब्लॉक डिवाइस की पहचान करने की आवश्यकता है।
    निम्न आदेश चला करें: iostat -x -k 5 2। कृपया दोनों परिणाम सेट की रिपोर्ट करें।
  2. फिर, हमें I / O की प्रतीक्षा करने वाली प्रक्रियाओं की पहचान करने की आवश्यकता है
    जब इसके लिए "शीर्ष" का उपयोग कर सकते हैं: इसे लॉन्च करें, शिफ्ट + एफ (एफ) दबाएं, फिर डब्ल्यू, फिर दर्ज करें, फिर शिफ्ट + आर (आर)। पहली प्रक्रियाएँ D या D + स्थिति में एक होंगी (अर्थात: डिस्क / नेटवर्क की प्रतीक्षा में)। कृपया सूची वापस रिपोर्ट करें।
  3. प्रक्रियाओं के लिए संचित I / O मान दिखाने के लिए iotop का उपयोग करें । लगभग एक मिनट तक
    चलाएं iotop -aऔर यहां आउटपुट पेस्ट करें।

iostat -x -k 5 2 और प्रश्न में भी जोड़ा गया है
स्ट्रॉ Hat

1

थोड़ी देर हो गई, लेकिन मुझे एक समान मशीन पर समान समस्या थी और पता चला कि समस्या भ्रष्ट MySQL तालिकाओं का एक गुच्छा थी। चूंकि इनमें से कुछ तालिकाओं में बहुत अधिक डेटा था, इसने बहुत सारे I / O प्रतीक्षा समय का उत्पादन किया।

दूषित डेटा खोजने और सुधारने के लिए देखें /var/log/mysql/error.logया उपयोग mysqlcheckकरें।


0

जैसा कि ऊपर कहा गया है, यह काफी संभावना है कि आपका EC2 उदाहरण IO कैप के साथ आता है या हो सकता है कि यह अमेज़ॅन EBS मानक वॉल्यूम पर समर्थित हो, जो केवल बहुत ही IO वार वितरित नहीं करता है। इस पृष्ठ पर एक नज़र डालें - यह विभिन्न प्रकार के अमेज़ॅन ऑफ़र का वर्णन करता है।

यहां तक ​​कि अगर आपके पास धीमी तरह की मात्रा है, तो आपको अभी भी इसे बहुत तेजी से लिखने में सक्षम होना चाहिए, लेकिन अगर आपका लोड स्वभाव से यादृच्छिक है, जैसा कि ऐसा लगता है कि यह (SQL सामान) हो सकता है, तो आप IOPS को अपग्रेड करना चाह सकते हैं। क्षमता, क्योंकि यह आमतौर पर एसक्यूएल प्रदर्शन पर ऊपरी सीमा रखता है।

इसलिए - आपके नंबरों से, ऐसा लगता है कि आप मानक भंडारण का उपयोग करके IOPS से बाहर निकल सकते हैं। तेज स्टोरेज खरीदना इतना महंगा नहीं है। इस पर एक नजर ।


-3

डिस्क शायद गैर-डीएमए मोड में हो। कृपया ड्राइव का DMA स्टेटस जांचें। (hdparm कमांड)

यदि ऐसा नहीं है, तो कुछ और बहुत सारे व्यवधान उत्पन्न कर सकता है। किसी को भी पुराने पुराने डॉस युग से याद है?


EC2 एक वर्चुअलाइजेशन प्लेटफ़ॉर्म है और वर्चुअल डिस्क का उपयोग करता है। यहां अपराधी नहीं डीएमए। वैसे भी, एक IRQ तूफान सीपीयू पर एक टोल बनाता है, डिस्क पर नहीं।
शोडान्शोक

हाँ और IRQ का अर्थ है व्यवधान।
ओवरमाइंड

EC2 जहां तक ​​संभव हो उस तरह की समस्या से दूर हो जाता है जो मैं कहूंगा। I / O उदाहरण के प्रकार से घिरा हुआ है - और अंत में कुछ बहुत ही महंगा SAN समाधान है जिसमें बहुत अधिक क्षमता है।
MrMajestyk
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.