पर बहुत समय लेना/पुनर्स्थापित करना मेरे पास उबंटू 12.04 का उपयोग करके एक अमेज़ॅन ec2 इंस्टेंस (SAY S1) (4core -7GB मेमोरी) है, जो postgresql 9.1
के साथ अपना वेब ऐप चला रहा है। सभी पोस्टग्रेर्स डेटा को 100 जीबी की एक अलग एसएसडी वॉल्यूम (रूट नहीं) पर संग्रहीत किया जाता है। (अब इसे वर्तमान में केवल 26% पूर्ण लिखें)।पोस्टग्रेस अमेज़ॅन ec2
अचानक एक दिन या दो कुछ पोस्टग्रेस कार्यों से बहुत समय लगाना शुरू हो गया। कमांड बनाएं (52 सेकंड) और एक डीबी बहाल करें (9 मिनट अब, पहले 50 सेकंड अधिकतम)।
पोस्टग्रेस कमांड चलाते समय iostat चलाकर मैं पुष्टि कर सकता हूं कि इसकी आईओपीएस की आईओपीएस जो इसकी सीमा तक पहुंच गई है (3 आईओपीएस/जीबी 100 जीबी वॉल्यूम के लिए 300 आईओपीएस बराबर है)। इस आदेश को iostat -d 5 -x -p xvdf
चलाने के बाद इसे नीचे देख सकते हैं।
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.35 2.28 1.20 298.99 19.65 13082.19 87.29 23.42 78.03 64.19 78.09 3.29 98.75
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.00 1.80 0.00 297.40 0.00 13067.20 87.88 126.47 420.75 0.00 420.75 3.35 99.76
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.00 1.80 0.00 297.40 0.00 13067.20 87.88 126.32 417.95 0.00 417.95 3.35 99.76
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.00 1.80 0.00 297.80 0.00 13093.60 87.94 131.70 440.82 0.00 440.82 3.36 100.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
xvdf 0.00 0.00 0.00 301.00 0.00 13225.60 87.88 129.36 422.97 0.00 422.97 3.32 99.84
एडब्ल्यूएस पर IO characteristics कहते हैं कि प्रत्येक IOPS 256KiB के एक अनुरोध लेता है या बहुत कम वापस IOPS अनुरोध की अधिक संख्या है, जिसके परिणामस्वरूप लिखने के लिए डेटा के छोटे ब्लॉकों का उपयोग कर postgres है?
जबकि मेरे पास 100 जीबी वॉल्यूम (9 5% अभी पूर्ण) के साथ एक और ec2 इंस्टेंस (अभी एस 2 एस) है, जिसमें पोस्टग्रेस डेटा रूट वॉल्यूम पर है और यह शानदार प्रदर्शन कर रहा है। तो वॉल्यूम का आकार कुछ ऐसा है जो मुझे यकीन है कि इससे कोई फर्क नहीं पड़ता।
एस 1 की केवल प्रभावित मात्रा में पोस्टग्रेस डेटा स्टोर की मात्रा अभी भी मैं नीचे दिए गए आंकड़ों को iostat द्वारा देख सकता हूं। निश्चित नहीं है कि आंकड़े इस तरह क्यों हैं और वॉल्यूम के आकार को बढ़ाए बिना पोस्टग्रेस कमांड समय को कैसे कम कर सकते हैं। (सभी कार्यों जबकि 3GB स्मृति हमेशा नि: शुल्क है)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.34 2.29 1.23 298.93 20.10 13079.03 87.28 26.19 87.26 66.96 87.34 3.29 98.78
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.00 2.40 0.60 299.00 4.80 13020.80 86.95 132.22 434.48 108.00 435.14 3.34 100.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
xvdf 0.00 3.20 4.40 295.20 43.20 12866.40 86.18 122.18 417.09 142.00 421.20 3.34 100.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
xvdf 0.00 2.80 2.40 297.20 23.20 12940.00 86.54 122.70 401.11 124.00 403.34 3.34 99.92
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.00 3.40 4.80 294.80 46.40 12840.00 86.02 127.43 433.15 161.67 437.57 3.34 99.92
नोट: postgres के प्रभावित मात्रा 110 एमबी/db के औसत आकार के साथ 100 विभिन्न postgres db शामिल हैं (लेकिन ईमानदारी से मुझे नहीं लगता कि यह किसी भी मामले में है एक समस्या)