PostgreSQL pg_stat_activity COMMIT दिखाता है


11

हमने हाल ही में अपने डेटाबेस सर्वर को 4 x क्वाड कोर सीपीयू और 32 जीबी के रैम के साथ अपग्रेडेड मशीन से बदल दिया है। हमने स्ट्रीमिंग के प्रतिकृति के साथ दास के रूप में सेवा करने के लिए अपने पुराने बॉक्स को भी पुनर्निर्मित किया। दोनों बॉक्स CentOS 6.3 और PostgreSQL 9.2 चला रहे हैं। प्रत्येक बॉक्स पर केवल पोस्टग्रेज चल रहा है।

यह कॉन्फ़िगरेशन लगभग एक महीने के लिए किया गया है, जब अचानक हम कुछ मुद्दों में भागना शुरू कर दिया, क्योंकि ट्रैफ़िक ऊपर उठने लगा था। हमने जो देखना शुरू किया है वह कई बार अत्यधिक उच्च सीपीयू लोड होता है (शीर्ष 270 का लोड औसत दिखाता है), और जब हम देख सकते हैं तो हम pg_stat_activityदेखेंगे कि हमारे अधिकांश कनेक्शन COMMITराज्य में हैं। जब अकेले छोड़ दिया जाता है, तो यह अंततः खत्म हो जाएगा और कनेक्शन बनने के साथ सिस्टम उत्तरदायी हो जाएगा IDLE। हमने यह देखने के लिए प्रतिकृति को अक्षम करने की कोशिश की है कि क्या यह मुद्दा हो सकता है, लेकिन समस्या अभी भी बनी हुई है।

हमने यह पता लगाने की कोशिश की है कि क्या हो रहा है, और थोड़ा खो गए हैं। रनिंग से आउटपुट perfनीचे के समान कुछ दिखाता है, और मुझे नहीं पता कि क्या 0x347ba9प्रतिनिधित्व करता है।

+  41.40%       48154  postmaster  0x347ba9         f 0x347ba9                                   
+   9.55%       10956  postmaster  0x2dc820         f set_config_option                          
+   8.64%        9946  postmaster  0x5a3d4          f writeListPage     
+   5.75%        6609  postmaster  0x5a2b0          f ginHeapTupleFastCollect                    
+   2.68%        3084  postmaster  0x192483         f build_implied_join_equality                
+   2.61%        2990  postmaster  0x187a55         f build_paths_for_OR                         
+   1.86%        2131  postmaster  0x794aa          f get_collation_oid                          
+   1.56%        1822  postmaster  0x5a67e          f ginHeapTupleFastInsert                     
+   1.53%        1766  postmaster  0x1929bc         f distribute_qual_to_rels                    
+   1.33%        1558  postmaster  0x249671         f cmp_numerics

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

इस बिंदु पर मैं थोड़ा स्तब्ध हूं कि आगे क्या करना है। कोई भी मदद या सुझाव सराहनीय होगा। यदि कोई अतिरिक्त जानकारी है जो मदद करेगी, तो बस पूछें और मैं प्रश्न में संशोधन कर सकता हूं।

डिस्क कॉन्फ़िगरेशन:

  • Perc 6i RAID नियंत्रक
  • 5 x 146GB 15K SAS ड्राइव
  • सिस्टम और डेटा के लिए WAL और 3x146GB RAID-5 के लिए 2x146GB RAID-1 के रूप में कॉन्फ़िगर किया गया है

अपडेट करें:

नीचे VMStat आउटपुट है जब सिस्टम सामान्य रूप से कार्य कर रहा है और जब सीपीयू शूट करता है। जब कोई मुद्दा होता है, तो इंटरप्ट आसमान छूते दिखते हैं।

सामान्य ऑपरेशन के दौरान:

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ ---timestamp---
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 18938590 303763 21947154    0    0    28    52 7466 12649  2  1 97  0  0   2013-01-14 16:03:25 EST
 0  0      0 18938396 303763 21947154    0    0     0    19 7107 12679  2  0 98  0  0   2013-01-14 16:03:35 EST
 1  0      0 18938904 303763 21947162    0    0     0    54 7042 12708  1  1 99  0  0   2013-01-14 16:03:45 EST
 1  0      0 18938520 303763 21947260    0    0    33    66 7120 12738  1  1 99  0  0   2013-01-14 16:03:55 EST

जब CPU उपयोग अधिक होता है:

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ ---timestamp---
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
343 0      0 32680468 226279 11339612    0    0     0   214 26692 12225 80  20  0  0  0   2013-01-11 16:45:53 EST
374 1      0 32673764 226291 11340345    0    0     0    77 54893 11572 80  20  0  0  0   2013-01-11 16:46:03 EST
383 0      0 32616620 226304 11340956    0    0     0   102 55540 12922 82  18  0  0  0   2013-01-11 16:46:13 EST
315 0      0 32602038 226320 11341378    0    0     0    79 54539 12441 82  18  0  0  0   2013-01-11 16:46:23 EST

नए बॉक्स में किस तरह के डिस्क हैं? क्या यह दोनों नोड्स या उनमें से केवल एक पर हो रहा है?
ट्राईवेग लॉगस्टोएल

@trygvis - मैं डिस्क चश्मा के साथ सवाल का अद्यतन करता हूं। समस्या मास्टर नोड पर हो रही है। मैंने स्लेव को बढ़ावा देने और इसके लिए सीधे यातायात की कोशिश नहीं की है, इसलिए मुझे यकीन नहीं है कि यह एक मुद्दा है और साथ ही समान परिस्थितियों में भी है। एक दास के रूप में, मशीन किसी भी मुद्दे का अनुभव नहीं करती है।
जकार्न

2
perfकुछ सिस्टम-वाइड प्रोफाइलिंग और कुछ PostgreSQL प्रोफाइलिंग करने के लिए टूल का उपयोग करने पर विचार करें । देखें कि CPU उपयोग कहां हो रहा है। BTW, आपके 2 vmstatका प्रारूपण आम तौर पर खराब हो गया है, और 1 के कॉलम गलत लिखे गए हैं, इसलिए इसे पढ़ना मुश्किल है। यह देखने के लिए परीक्षण करें कि क्या commit_delayसुधार करने वाली चीजों को जोड़ना है । जांचें कि क्या आपके RAID नियंत्रक में बैटरी-समर्थित राइट-बैक कैश है और यदि यह नहीं है, तो एक प्राप्त करें। में ज्यादा समय व्यतीत होता है iowait? यह कुछ रिपोर्टिंग में CPU उपयोग प्रतीत होता है, लेकिन वास्तव में ऐसा नहीं है।
क्रेग रिंगर

@CraigRinger कंट्रोलर में बैटरी समर्थित राइट कैश है, और जो वर्तमान में सक्षम है। इओस्टाट से प्रतीक्षित एकल से कम दोहरे अंकों में रहा। हम परफ़ॉर्म के साथ कुछ और प्रोफाइलिंग की कोशिश जारी रखेंगे। मैंने दूसरे VMStat के प्रारूपण को भी तय किया, इस बात के लिए धन्यवाद।
jcern

जवाबों:


11

आगे के डायग्नोस्टिक्स और कुछ गोगलिंग के बाद, हम इस लेख में आए, जिसमें हम अनुभव कर रहे कई समान लक्षणों का वर्णन करते हैं। उनकी समस्या का मूल कारण (और जो हम बता सकते हैं, हमारा भी) Transparent Huge Pagesकार्यान्वयन से संबंधित था ।

Transparent Huge Pagesइस आदेश को अक्षम करने के बाद :

echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled

समस्या का समाधान हो गया है। हम पिछले दो हफ्तों से काम के बोझ में बढ़ रहे हैं और इस मुद्दे पर कोई प्रतिक्रिया नहीं आई है। सिस्टम के संदर्भ और व्यवधान लगातार 1/10 वें हैं जो वे थे और औसत सिस्टम समय भी कम हो गया है।

सुनिश्चित नहीं है कि यह सभी के लिए समाधान है, लेकिन मैं इसे यहां एक संभावित कारण के रूप में पोस्ट करता हूं यह किसी अन्य मुद्दे को हल करने में किसी और की मदद कर सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.