ኩባንያው
እንደ እውነቱ ከሆነ፣ እነዚህ ከpg_stat_activity የሚመጡ የእያንዳንዱ ሰከንድ ቅጽበተ-ፎቶዎች ናቸው፣ ነገር ግን አስፈላጊ ነጥቦች አሉ፡
- ሁሉም የተከማቸ መረጃ በ RAM ውስጥ ብቻ ነው የሚቀመጠው፣ እና የሚፈጀው የማህደረ ትውስታ መጠን በመጨረሻው የተከማቹ መዝገቦች ቁጥር ቁጥጥር ይደረግበታል።
- የጥያቄ መስክ ታክሏል - ከpg_stat_statements ቅጥያ (ቅድመ-መጫን ያስፈልጋል) ተመሳሳይ ጥያቄ።
- የከፍተኛ_ደረጃ_መጠይቁ መስክ ተጨምሯል - የአሁኑ መጠይቅ የተጠራበት የጥያቄው ጽሑፍ (pl/pgsql በመጠቀም ላይ)
የpg_active_session_ታሪክ መስኮች ሙሉ ዝርዝር፡-
አምድ | ይተይቡ --------------------------------------------- አመድ_ጊዜ | የሰዓት ማህተም ከቀኑ ሰቅ ጋር | oid dataname | ጽሑፍ pid | ኢንቲጀር ተጠቃሚሲድ | ኦይድ የተጠቃሚ ስም | የጽሑፍ መተግበሪያ_ስም | የጽሑፍ ደንበኛ_ addr | የጽሑፍ ደንበኛ_አስተናጋጅ ስም | የጽሑፍ ደንበኛ_ፖርት | ኢንቲጀር የኋላ_ጅምር | የጊዜ ማህተም በጊዜ ሰቅ xact_start | የጊዜ ማህተም በጊዜ ሰቅ መጠይቅ_ጀምር | የጊዜ ማህተም በጊዜ ሰቅ ሁኔታ_ለውጥ | የጊዜ ማህተም በጊዜ ሰቅ መጠበቅ_ክስተት_አይነት | የጽሑፍ መጠበቅ_ክስተት | የጽሑፍ ሁኔታ | backend_xid ጽሑፍ | xid backend_xmin | xid top_level_ጥያቄ | የጽሑፍ ጥያቄ | text queryid | bigint backend_type | ጽሑፍ
ለመጫን እስካሁን ምንም ዝግጁ ጥቅል የለም። የምንጭ ኮዱን ለማውረድ እና ቤተ መፃህፍቱን እራስዎ ለመገንባት ሀሳብ ቀርቧል። በመጀመሪያ ለአገልጋይህ የ"devel" ፓኬጅ መጫን አለብህ እና ወደ pg_config የሚወስደውን መንገድ በPATH ተለዋዋጭ ውስጥ ማዘጋጀት አለብህ። እኛ እንሰበስባለን:
ሲዲ pgsentinel/src
ማድረግ
መጫንን ይፍጠሩ
ወደ postgres.conf መለኪያዎችን ያክሉ፡-
shared_preload_libraries = 'pg_stat_statements,pgsentinel'
የትራክ_እንቅስቃሴ_ጥያቄ_መጠን = 2048
pg_stat_statements.track = ሁሉምበማህደረ ትውስታ ውስጥ የተያዙ # የቅርብ ጊዜ መዝገቦች ብዛት
pgsentinel_ash.max_entries = 10000
PostgreSQLን እንደገና ይጫኑ እና ቅጥያ ይፍጠሩ፡
ቅጥያ pgsentinel ይፍጠሩ;
የተጠራቀመው መረጃ እንደሚከተሉት ያሉ ጥያቄዎችን እንድንመልስ ያስችለናል፡-
- ክፍለ-ጊዜዎቹ ብዙ ጊዜ ያሳለፉት በየትኞቹ ተስፋዎች ላይ ነው?
- የትኞቹ ክፍለ-ጊዜዎች በጣም ንቁ ነበሩ?
- በጣም ንቁ የሆኑት የትኞቹ ጥያቄዎች ነበሩ?
በእርግጥ ለእነዚህ ጥያቄዎች የ SQL መጠይቆችን በመጠቀም መልስ ማግኘት ይችላሉ ፣ ግን ይህንን በገበታው ላይ በግልፅ ለማየት የበለጠ ምቹ ነው ፣ ይህም በመዳፊት የፍላጎት የጊዜ ክፍተቶችን ያሳያል ። በነጻ ፕሮግራም ሊያደርጉት ይችላሉ።
በሚነሳበት ጊዜ PASH-Viewer (ከስሪት 0.4.0 ጀምሮ) የpg_active_session_history እይታ መኖሩን ይፈትሻል፣ እና ካለ፣ የተጠራቀመውን ታሪክ በሙሉ ከሱ ይጭናል እና አዲስ ገቢ ውሂብን ማንበብ ይቀጥላል፣ ግራፉን በየ15 ሰከንድ ያዘምናል።
ምንጭ: hab.com