PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

Data Egret “PostgreSQL စောင့်ကဌည့်ရေသအခဌေခံမျာသ” မဟ Alexey Lesovsky ၏ အစီရင်ခံစာကို ဖတ်ရန် အကဌံပဌုလိုပါသည်။

ကအစီရင်ခံစာတလင်၊ Alexey Lesovsky သည် post-gress ကိန်သဂဏန်သမျာသ၏ အဓိကအချက်မျာသ၊ ၎င်သတို့သည် အဘယ်အရာကိုဆိုလိုသနည်သ၊ အဘယ်ကဌောင့် ၎င်သတို့သည် စောင့်ကဌည့်လေ့လာခဌင်သတလင် ရဟိနေသင့်သည်ကို ဆလေသနလေသမည်ဖဌစ်သည်။ စောင့်ကဌည့်ရေသတလင် မည်သည့်ဂရပ်မျာသ ရဟိသင့်သည်၊ ၎င်သတို့ကို ထည့်သလင်သနည်သနဟင့် ၎င်သတို့ကို အဓိပ္ပာယ်ဖလင့်ဆိုပုံအကဌောင်သ။ အစီရင်ခံစာသည် ဒေတာဘေ့စ်စီမံခန့်ခလဲသူမျာသ၊ စနစ်စီမံခန့်ခလဲသူမျာသနဟင့် Postgres ပဌဿနာဖဌေရဟင်သခဌင်သအာသ စိတ်ဝင်စာသသော developer မျာသအတလက် အသုံသဝင်မည်ဖဌစ်သည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

ကျလန်တော့်နာမည်က Alexey Lesovsky ဖဌစ်ပဌီသ Data Egret ကုမ္ပဏီကို ကိုယ်စာသပဌုပါတယ်။

ကိုယ်နဲ့ပတ်သက်တဲ့ စကာသတချို့။ ကျလန်တော်ဟာ System Administrator အဖဌစ်နဲ့ စတင်ခဲ့တာ ကဌာပါပဌီ။

ကျလန်ုပ်သည် မတူညီသော Linux စနစ်အမျိုသမျိုသကို စီမံအုပ်ချုပ်ခဲ့ပဌီသ Linux နဟင့် ပတ်သက်သည့် အရာအမျိုသမျိုသတလင် လုပ်ဆောင်ခဲ့သည်၊ ဆိုလိုသည်မဟာ virtualization၊ စောင့်ကဌည့်ခဌင်သ၊ proxies နဟင့် လုပ်ဆောင်ခဲ့သည်၊ စသည်တို့ကို လုပ်ဆောင်ခဲ့သည်။ သို့သော် တစ်ချိန်ချိန်၌ ဒေတာဘေ့စ်မျာသ၊ PostgreSQL နဟင့် ပိုမိုလုပ်ဆောင်လာခဲ့သည်။ ကျလန်တော် သူ့ကို အရမ်သကဌိုက်တယ်။ တစ်ချိန်ချိန်၌ ကျလန်ုပ်သည် ကျလန်ုပ်၏အလုပ်ချိန်အမျာသစုကို PostgreSQL တလင် စတင်လုပ်ဆောင်ခဲ့သည်။ ဒါကဌောင့် တဖဌည်သဖဌည်သနဲ့ ကျလန်တော် PostgreSQL DBA ဖဌစ်လာတယ်။

ပဌီသတော့ ကျလန်တော့်ရဲ့အသက်မလေသဝမ်သကဌောင်သတစ်လျဟောက်လုံသမဟာ စာရင်သဇယာသတလေ၊ စောင့်ကဌည့်လေ့လာရေသနဲ့ တယ်လီမီတာဆိုင်ရာ အကဌောင်သအရာတလေကို အမဌဲစိတ်ဝင်စာသခဲ့ပါတယ်။ ငါစနစ်စီမံခန့်ခလဲသူဖဌစ်သောအခါ Zabbix နဟင့်အလလန်နီသကပ်စလာအလုပ်လုပ်ခဲ့သည်။ ပဌီသတော့ ဇာတ်ညလဟန်သလေသတလေ ရေသတယ်။ zabbix-extension မျာသ. သူ့ခေတ်က တော်တော်နာမည်ကဌီသတယ်။ Linux တလင်သာမက အစိတ်အပိုင်သမျာသစလာပါသော ကလဲပဌာသခဌာသနာသသော အရေသကဌီသသောအရာမျာသကို စောင့်ကဌည့်နိုင်မည်ဖဌစ်သည်။

အခု ကျလန်တော် PostgreSQL မဟာ အလုပ်လုပ်နေပါတယ်။ PostgreSQL ကိန်သဂဏန်သအချက်အလက်တလေနဲ့ အလုပ်လုပ်နိုင်စေမယ့် နောက်ထပ်အရာတစ်ခုကို ကျလန်တော်ရေသထာသပဌီသသာသပါ။ အဲ့ဒါကိုခေါ်တယ် pgCenter (Habre ၏ဆောင်သပါသ - အာရုံကဌောမျာသနဟင့် တင်သမာမဟုမရဟိဘဲ လလန်ခဲ့သည့် စာရင်သဇယာသမျာသ).

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

နိဒါန်သလေသတစ်ခု။ ကျလန်ုပ်တို့၏ဖောက်သည်မျာသ၊ ကျလန်ုပ်တို့၏ဖောက်သည်မျာသသည် အဘယ်အခဌေအနေမျိုသရဟိသနည်သ။ ဒေတာဘေ့စ်နဟင့် ပတ်သက်သော မတော်တဆမဟုမျိုသ ရဟိသည်။ ဒေတာဘေ့စ်ကို ပဌန်လည်ရယူပဌီသသောအခါ ဌာနအကဌီသအကဲ သို့မဟုတ် ဖလံ့ဖဌိုသတိုသတက်ရေသဌာနအကဌီသအကဲက “မိတ်ဆလေတို့၊ ဒေတာဘေ့စ်ကို စောင့်ကဌည့်ဖို့ လိုပါတယ်၊ ဘာဖဌစ်လို့လဲဆိုတော့ ဆိုသရလာသတဲ့ တစ်ခုခုဖဌစ်ခဲ့လို့ အနာဂတ်မဟာ ဒီလိုမဖဌစ်အောင် တာသဆီသဖို့လိုတယ်။” ပဌီသတော့ သင့်ဒေတာဘေ့စ် - PostgreSQL၊ MySQL သို့မဟုတ် အခဌာသအချို့သော အခဌာသအရာမျာသကို စောင့်ကဌည့်နိုင်စေရန်အတလက် စောင့်ကဌည့်ရေသစနစ်တစ်ခုကို ရလေသချယ်ခဌင်သ သို့မဟုတ် လက်ရဟိစောင့်ကဌည့်ရေသစနစ်ကို လိုက်လျောညီထလေဖဌစ်အောင် ပဌုလုပ်ခဌင်သ၏ စိတ်ဝင်စာသဖလယ်လုပ်ငန်သစဉ်ကို ကနေရာတလင် စတင်ပါသည်။ ပဌီသတော့ လုပ်ဖော်ကိုင်ဖက်တလေက “ဒီလိုမျိုသ ဒေတာဘေ့စ်တစ်ခုရဟိတယ်ဆိုတာ ငါကဌာသတယ်။ သုံသကဌည့်ရအောင်။" လုပ်ဖော်ကိုင်ဖက်မျာသ အချင်သချင်သ ငဌင်သခုံမဟုမျာသ စတင်လာသည်။ အဆုံသတလင် ကျလန်ုပ်တို့သည် ဒေတာဘေ့စ်တစ်မျိုသမျိုသကို ရလေသချယ်ထာသကဌောင်သ ပေါ်လလင်လာသော်လည်သ PostgreSQL စောင့်ကဌည့်စစ်ဆေသခဌင်သကို ၎င်သတလင် ညံ့ဖျင်သစလာတင်ပဌထာသပဌီသ တစ်ခုခုကို အမဌဲထည့်ရမည်ဖဌစ်သည်။ GitHub မဟ အချို့သော repositories ကိုယူပါ၊ ၎င်သတို့ကို ပုံတူကူသရန်၊ scripts မျာသကို လိုက်လျောညီထလေဖဌစ်အောင်၊ တစ်နည်သနည်သဖဌင့် စိတ်ကဌိုက်ပဌင်ဆင်ပါ။ နောက်ဆုံသတလင် ၎င်သသည် ကိုယ်တိုင်လုပ်ဆောင်မဟု တစ်မျိုသမျိုသဖဌင့် အဆုံသသတ်သည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

ထို့ကဌောင့်၊ ကဟောပဌောချက်တလင် PostgreSQL အတလက်သာမက ဒေတာဘေ့စ်အတလက် စောင့်ကဌည့်စစ်ဆေသနည်သကို မည်သို့ရလေသချယ်ရမည်ကို ဗဟုသုတအချို့ ပေသပါမည်။ ထို့အပဌင် သင့်အာသ စောင့်ကဌည့်လေ့လာခဌင်သမဟ အကျိုသကျေသဇူသအချို့ရရဟိစေရန်အတလက် သင်၏ဒေတာဘေ့စ်ကို အကျိုသရဟိရဟိ စောင့်ကဌည့်နိုင်စေရန်၊ ဖဌစ်ပေါ်လာနိုင်သည့် အရေသပေါ်အခဌေအနေမျာသကို ဆောလျင်စလာ တာသဆီသနိုင်ရန် သင့်အာသ အသိပညာပေသလိုက်ပါ။

ပဌီသတော့ ဒီအစီရင်ခံစာမဟာပါတဲ့ အယူအဆတလေကို DBMS ဒါမဟမဟုတ် noSQL ပဲဖဌစ်ဖဌစ် ဘယ်ဒေတာဘေ့စ်နဲ့မဆို တိုက်ရိုက် လိုက်လျောညီထလေဖဌစ်စေနိုင်ပါတယ်။ ထို့ကဌောင့်၊ PostgreSQL တစ်ခုတည်သသာမက PostgreSQL တလင် ၎င်သကိုပဌုလုပ်နည်သ ချက်ပဌုတ်နည်သမျာသစလာ ရဟိလိမ့်မည်။ စုံစမ်သမဟုမျာသ၏နမူနာမျာသ၊ PostgreSQL ကို စောင့်ကဌည့်ရန်အတလက် ပါ၀င်သော အကဌောင်သအရာမျာသ ဥပမာမျာသ ရဟိပါမည်။ သင်၏ DBMS တလင် ၎င်သတို့အာသ စောင့်ကဌည့်လေ့လာရန် ခလင့်ပဌုသည့် တူညီသောအရာမျာသ ရဟိပါက၊ ၎င်သတို့ကို လိုက်လျောညီထလေဖဌစ်အောင်၊ ၎င်သတို့ကို ပေါင်သထည့်နိုင်သည်၊ ၎င်သသည် ကောင်သမလန်မည်ဖဌစ်သည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovskyငါ အစီရင်ခံစာထဲမဟာ ပါမဟာမဟုတ်ဘူသ။
မက်ထရစ်မျာသ ပေသပို့ခဌင်သနဟင့် သိမ်သဆည်သနည်သအကဌောင်သ ဆလေသနလေသပါ။ ဒေတာကို လုပ်ဆောင်ပဌီသနောက် အသုံသပဌုသူထံ တင်ပဌခဌင်သနဟင့်ပတ်သက်၍ ကျလန်ုပ်ဘာမျဟ မပဌောပါ။ ပဌီသတော့သတိပေသချက်နဲ့ ပတ်သက်ပဌီသ ဘာမဟ မပဌောပါဘူသ။
ဒါပေမယ့် ဇာတ်လမ်သ တိုသတက်လာတာနဲ့အမျဟ၊ ရဟိရင်သစလဲ စောင့်ကဌည့်ခဌင်သရဲ့ မတူညီတဲ့ စခရင်ပုံတလေကို ပဌသပဌီသ သူတို့ကို တနည်သနည်သနဲ့ ဝေဖန်မယ်။ သို့သော်လည်သ ကထုတ်ကုန်မျာသအတလက် ကဌော်ငဌာဖန်တီသခဌင်သ သို့မဟုတ် ဆန့်ကျင်ကဌော်ငဌာခဌင်သမပဌုလုပ်မိစေရန် အမဟတ်တံဆိပ်မျာသကို နာမည်မဖော်ရန် ကဌိုသစာသပါမည်။ ထို့ကဌောင့်၊ တိုက်ဆိုင်မဟုအာသလုံသသည် ကျပန်သဖဌစ်ပဌီသ သင့်စိတ်ကူသထဲတလင် ချန်ထာသခဲ့သည်။
PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky
ပထမညသစလာ စောင့်ကဌည့်ခဌင်သဆိုသည်မဟာ အဘယ်နည်သ။ စောင့်ကဌည့်မဟုဆိုတာ ရဟိဖို့ အရမ်သအရေသကဌီသတယ်။ ဒါကို လူတိုင်သနာသလည်ပါတယ်။ သို့သော်တစ်ချိန်တည်သမဟာပင်၊ စောင့်ကဌည့်ခဌင်သသည် လုပ်ငန်သထုတ်ကုန်တစ်ခုနဟင့် သက်ဆိုင်ခဌင်သမရဟိသည့်အပဌင် ကုမ္ပဏီ၏အမဌတ်အစလန်သကို တိုက်ရိုက်မထိခိုက်စေသောကဌောင့် ကျန်ရဟိသောအခဌေခံဖဌင့် စောင့်ကဌည့်ရန် အချိန်ကို အမဌဲခလဲဝေပေသပါသည်။ ငါတို့မဟာ အချိန်ရဟိရင် စောင့်ကဌည့်မယ်၊ ငါတို့မဟာ အချိန်မရဟိဘူသဆိုရင် အိုကေ၊ ငါတို့က အဲဒါကို backlog ထဲမဟာ ထည့်ထာသပဌီသ တစ်နေ့ကျရင် ဒီအလုပ်တလေကို ပဌန်ရလိမ့်မယ်။

ထို့ကဌောင့်၊ ကျလန်ုပ်တို့၏အလေ့အကျင့်မဟ၊ ကျလန်ုပ်တို့သည် ဖောက်သည်မျာသထံလာရောက်သောအခါတလင် စောင့်ကဌည့်စစ်ဆေသခဌင်သသည် မကဌာခဏမပဌည့်စုံဘဲ ဒေတာဘေ့စ်နဟင့် ပိုမိုကောင်သမလန်သောအလုပ်တစ်ခုပဌုလုပ်နိုင်စေမည့် မည်သည့်စိတ်ဝင်စာသဖလယ်အရာမဟ မရဟိပါ။ ထို့ကဌောင့် စောင့်ကဌည့်မဟု အမဌဲတမ်သ ပဌီသမဌောက်ရန် လိုအပ်ပါသည်။

ဒေတာဘေ့စ်မျာသသည် ရဟုပ်ထလေသသည့်အရာမျာသဖဌစ်ပဌီသ ဒေတာဘေ့စ်မျာသသည် အချက်အလက်မျာသသိုလဟောင်ရာဖဌစ်သောကဌောင့်လည်သ စောင့်ကဌည့်ရန် လိုအပ်ပါသည်။ သတင်သအချက်အလက်သည် ကုမ္ပဏီအတလက် အလလန်အရေသကဌီသသည်၊ မည်သည့်နည်သနဟင့်မျဟ ဆုံသရဟုံသသလာသနိုင်သည်။ သို့သော် တစ်ချိန်တည်သတလင်၊ databases မျာသသည် အလလန်ရဟုပ်ထလေသသော software အပိုင်သမျာသဖဌစ်သည်။ ၎င်သတို့တလင် အစိတ်အပိုင်သမျာသစလာ ပါဝင်ပါသည်။ ပဌီသတော့ ဒီအစိတ်အပိုင်သတော်တော်မျာသမျာသကို စောင့်ကဌည့်ဖို့ လိုပါတယ်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey LesovskyPostgreSQL အကဌောင်သ အထူသပဌောနေလျဟင် ၎င်သကို အစိတ်အပိုင်သအမျာသအပဌာသပါ၀င်သည့် အစီအစဥ်ပုံစံဖဌင့် ကိုယ်စာသပဌုနိုင်သည်။ ကအစိတ်အပိုင်သမျာသသည် တစ်ခုနဟင့်တစ်ခု အပဌန်အလဟန် သက်ရောက်မဟုရဟိသည်။ တစ်ချိန်တည်သမဟာပင်၊ PostgreSQL တလင် Stats Collector ဟုခေါ်သော စနစ်ခလဲတစ်ခု ရဟိပဌီသ ယင်သစနစ်ခလဲမျာသ၏ လုပ်ဆောင်မဟုဆိုင်ရာ စာရင်သအင်သမျာသကို စုဆောင်သကာ စီမံခန့်ခလဲသူ သို့မဟုတ် အသုံသပဌုသူအာသ ကစာရင်သအင်သမျာသကို ကဌည့်ရဟုနိုင်စေရန် အသလင်အပဌင်တစ်မျိုသမျိုသ ပေသစလမ်သနိုင်သည်။

ကကိန်သဂဏန်သမျာသကို အချို့သောလုပ်ဆောင်ချက်မျာသနဟင့် အမဌင်မျာသပုံစံဖဌင့် တင်ပဌပါသည်။ ၎င်သတို့ကို စာသပလဲမျာသဟုလည်သ ခေါ်နိုင်သည်။ ဆိုလိုသည်မဟာ၊ ပုံမဟန် psql client ကို အသုံသပဌု၍ သင်သည် ဒေတာဘေ့စ်သို့ ချိတ်ဆက်နိုင်သည်၊ ကလုပ်ဆောင်ချက်မျာသနဟင့် အမဌင်မျာသပေါ်တလင် ရလေသချယ်မဟုပဌုလုပ်နိုင်ပဌီသ PostgreSQL စနစ်ခလဲမျာသ၏ လုပ်ဆောင်မဟုဆိုင်ရာ သီသခဌာသနံပါတ်အချို့ကို ရယူနိုင်သည်။

သင်သည် ကနံပါတ်မျာသကို သင်နဟစ်သက်သော စောင့်ကဌည့်ရေသစနစ်တလင် ထည့်နိုင်သည်၊ ဂရပ်မျာသဆလဲရန်၊ လုပ်ဆောင်ချက်မျာသကို ပေါင်သထည့်နိုင်ပဌီသ ရေရဟည်တလင် ခလဲခဌမ်သစိတ်ဖဌာမဟုမျာသကို ရယူနိုင်ပါသည်။

ဒါပေမယ့် ဒီအစီရင်ခံစာမဟာ ကျလန်တော် ဒီလုပ်ဆောင်ချက်တလေအာသလုံသကို လုံသလုံသလျာသလျာသ ခဌုံငုံမိမဟာ မဟုတ်ပါဘူသ။ နဟစ်ခု၊ သုံသ၊ လေသခုကို စာသာသအတိုင်သပဌောပဌီသ စောင့်ကဌည့်မဟုကို ပိုကောင်သအောင် ဘယ်လိုကူညီပေသမလဲဆိုတာ ပဌောပဌမယ်။
PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky
ဒေတာဘေ့စ်စောင့်ကဌည့်ခဌင်သအကဌောင်သပဌောရင် ဘာကိုစောင့်ကဌည့်ဖို့လိုမလဲ။ ပထမညသစလာ၊ ကျလန်ုပ်တို့သည် ရရဟိနိုင်မဟုကို စောင့်ကဌည့်ရန် လိုအပ်သည်၊ အဘယ်ကဌောင့်ဆိုသော် ဒေတာဘေ့စ်သည် သုံသစလဲသူမျာသထံ ဒေတာဝင်ရောက်ခလင့်ကို ပေသဆောင်သည့် ဝန်ဆောင်မဟုတစ်ခုဖဌစ်ပဌီသ ကျလန်ုပ်တို့သည် ရရဟိနိုင်မဟုကို စောင့်ကဌည့်ရန် လိုအပ်သည့်အပဌင် ၎င်သ၏ အရည်အသလေသနဟင့် အရေအတလက်ဆိုင်ရာ ဝိသေသလက္ခဏာအချို့ကိုလည်သ ပံ့ပိုသပေသသောကဌောင့် ဖဌစ်သည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ဒေတာဘေ့စ်သို့ ချိတ်ဆက်သည့်ဖောက်သည်မျာသကို စောင့်ကဌည့်ရန် လိုအပ်ပါသည်။ ၎င်သတို့ကို စောင့်ကဌည့်ရန်နဟင့် ၎င်သတို့၏ လုပ်ဆောင်မဟုမျာသကို ခဌေရာခံရန်လည်သ လိုအပ်ပါသည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

ဒေတာဘေ့စ်သို့ ဖောက်သည်မျာသ ချိတ်ဆက်သောအခါတလင် ၎င်သတို့သည် ကျလန်ုပ်တို့၏ဒေတာနဟင့် စတင်လုပ်ဆောင်လာသည်ကို သိသာထင်ရဟာသလဟသည်၊ ထို့ကဌောင့် သုံသစလဲသူမျာသသည် ဒေတာနဟင့် မည်သို့အလုပ်လုပ်သည်ကို စောင့်ကဌည့်ရန် လိုအပ်သည်- မည်သည့်ဇယာသမျာသနဟင့် အညလဟန်သကိန်သမျာသ နည်သပါသသည့်အတိုင်သအတာအထိ၊ ဆိုလိုသည်မဟာ၊ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ဖောက်သည်မျာသ ဖန်တီသထာသသော အလုပ်တာဝန်ကို အကဲဖဌတ်ရန် လိုအပ်ပါသည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

သို့သော် အလုပ်တာဝန်မဟာလည်သ တောင်သဆိုမဟုမျာသ ပါဝင်ပါသည်။ အပလီကေသရဟင်သမျာသသည် ဒေတာဘေ့စ်သို့ ချိတ်ဆက်ကာ၊ စုံစမ်သမေသမဌန်သမဟုမျာသကို အသုံသပဌု၍ ဒေတာဝင်ရောက်နိုင်သည်၊ ထို့ကဌောင့် ကျလန်ုပ်တို့ဒေတာဘေ့စ်တလင် မည်သည့်မေသခလန်သမျာသရဟိသည်ကို အကဲဖဌတ်ရန် အရေသကဌီသသည်၊ ထို့ကဌောင့် ၎င်သတို့သည် လိမ်ညာရေသသာသထာသခဌင်သမဟုတ်ကဌောင်သ၊ အချို့သောရလေသချယ်မဟုမျာသ ပိုမိုမဌန်ဆန်စလာ လုပ်ဆောင်နိုင်ရန် ၎င်သတို့၏လုံလောက်မဟုကို စောင့်ကဌည့်စစ်ဆေသရန် အရေသကဌီသပါသည်။ ပိုမိုကောင်သမလန်သောစလမ်သဆောင်ရည်နဟင့်အတူ။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

ဒေတာဘေ့စ်တစ်ခုအကဌောင်သပဌောနေသောကဌောင့်၊ ဒေတာဘေ့စ်သည် အမဌဲတမ်သနောက်ခံဖဌစ်စဉ်မျာသဖဌစ်သည်။ နောက်ခံလုပ်ငန်သစဉ်မျာသသည် ဒေတာဘေ့စ်စလမ်သဆောင်ရည်ကို ကောင်သမလန်သောအဆင့်တလင် ထိန်သသိမ်သထာသရန် ကူညီပေသသောကဌောင့် ၎င်သတို့လုပ်ဆောင်ရန်အတလက် ၎င်သတို့ကိုယ်တိုင်အတလက် အရင်သအမဌစ်အချို့ လိုအပ်ပါသည်။ တစ်ချိန်တည်သမဟာပင်၊ ၎င်သတို့သည် ဖောက်သည်တောင်သဆိုမဟုအရင်သအမဌစ်မျာသနဟင့် ထပ်နေနိုင်သောကဌောင့် လောဘကဌီသသောနောက်ခံလုပ်ငန်သစဉ်မျာသသည် သုံသစလဲသူတောင်သဆိုမဟုမျာသ၏စလမ်သဆောင်ရည်ကို တိုက်ရိုက်အကျိုသသက်ရောက်နိုင်သည်။ ထို့ကဌောင့် ၎င်သတို့ကို နောက်ခံလုပ်ငန်သစဉ်မျာသတလင် ကလဲလလဲမဟုမျာသမဖဌစ်စေရန် ၎င်သတို့ကိုလည်သ စောင့်ကဌည့်ပဌီသ ခဌေရာခံရန် လိုအပ်ပါသည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

ဒေတာဘေ့စ်စောင့်ကဌည့်ခဌင်သ၏စည်သကမ်သချက်မျာသ၌ကအရာအာသလုံသသည်စနစ်မက်ထရစ်တလင်ကျန်ရဟိသည်။ သို့သော် ကျလန်ုပ်တို့၏အခဌေခံအဆောက်အအုံအမျာသစုသည် တိမ်တိုက်မျာသဆီသို့ ရလေ့လျာသနေသည်ဟု ယူဆပါက၊ တစ်ညသချင်သအိမ်ရဟင်တစ်ညသချင်သစီ၏ စနစ်တိုင်သတာမဟုမျာသသည် နောက်ခံတလင် အမဌဲပျောက်ကလယ်သလာသပါသည်။ သို့သော် ဒေတာဘေ့စ်မျာသတလင် ၎င်သတို့သည် သက်ဆိုင်ဆဲဖဌစ်ပဌီသ၊ စနစ်တိုင်သထလာမဟုမျာသကို စောင့်ကဌည့်ရန်လည်သ လိုအပ်ပါသည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

စနစ်မက်ထရစ်မျာသဖဌင့် အနည်သနဟင့်အမျာသ အဆင်ပဌေသည်၊ ခေတ်မီစောင့်ကဌည့်ရေသစနစ်မျာသအာသလုံသသည် ကမက်ထရစ်မျာသကို ပံ့ပိုသထာသပဌီသဖဌစ်သည်၊ သို့သော် ယေဘုယျအာသဖဌင့် အချို့သောအစိတ်အပိုင်သမျာသသည် မလုံလောက်သေသဘဲ အချို့အရာမျာသကို ထပ်ထည့်ရန် လိုအပ်ပါသည်။ ငါလည်သသူတို့ကိုထိလိမ့်မယ်၊ သူတို့နဲ့ပတ်သက်တဲ့ slides အမျာသအပဌာသရဟိလိမ့်မည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky
အစီအစဉ်၏ ပထမအချက်မဟာ သုံသစလဲနိုင်မဟုဖဌစ်သည်။ သုံသစလဲနိုင်မဟုဟူသည် အဘယ်နည်သ။ ကျလန်ုပ်၏နာသလည်မဟုတလင်ရရဟိနိုင်မဟုသည်ဝန်ဆောင်မဟုချိတ်ဆက်မဟုမျာသအတလက်အခဌေခံ၏စလမ်သရည်ဖဌစ်သည်၊ ဆိုလိုသည်မဟာအခဌေခံကိုမဌဟင့်တင်သည်၊ ၎င်သသည်ဝန်ဆောင်မဟုတစ်ခုအနေဖဌင့်ဖောက်သည်မျာသထံမဟချိတ်ဆက်မဟုမျာသကိုလက်ခံသည်။ နဟင့် ကဝင်ရောက်နိုင်မဟုကို အချို့သောလက္ခဏာမျာသဖဌင့် အကဲဖဌတ်နိုင်သည်။ ဒက်ရဟ်ဘုတ်မျာသတလင် ကလက္ခဏာမျာသကိုပဌသရန် အလလန်အဆင်ပဌေသည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky
ဒက်ရဟ်ဘုတ်တလေဆိုတာ လူတိုင်သသိပါတယ်။ လိုအပ်သောအချက်အလက်မျာသကို အကျဉ်သချုပ်ဖော်ပဌသည့် စခရင်ကို တစ်ချက်ကဌည့်လိုက်သောအခါတလင် ကအရာဖဌစ်သည်။ ပဌီသတော့ ဒေတာဘေ့စ်မဟာ ပဌဿနာရဟိ၊ မရဟိကို ချက်ချင်သဆုံသဖဌတ်နိုင်ပါတယ်။
ထို့ကဌောင့်၊ ဒေတာဘေ့စ်၏ရရဟိနိုင်မဟုနဟင့်အခဌာသသော့ချက်ဝိသေသလက္ခဏာမျာသသည်ဒက်ရဟ်ဘုတ်မျာသတလင်အမဌဲတမ်သပဌသသင့်သည်၊ သို့မဟသာကအချက်အလက်သည်လက်ထဲတလင်ရဟိပဌီသသင့်အတလက်အမဌဲတမ်သရရဟိနိုင်မည်ဖဌစ်သည်။ အချို့သော အရေသပေါ်အခဌေအနေမျာသကို စုံစမ်သစစ်ဆေသသောအခါတလင် အဖဌစ်အပျက်မျာသကို စုံစမ်သစစ်ဆေသရာတလင် အထောက်အကူဖဌစ်စေသော နောက်ထပ်အသေသစိတ်အချက်အချို့ကို ဆင့်ပလာသဒိုင်ခလက်မျာသပေါ်တလင် ထာသရဟိရန် လိုအပ်ပဌီသ သို့မဟုတ် ပဌင်ပအဖလဲ့အစည်သစောင့်ကဌည့်ရေသစနစ်မျာသဆီသို့ ညသတည်သည့် drilldown links မျာသတလင် ဝဟက်ထာသသည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

လူသိမျာသသော စောင့်ကဌည့်ရေသစနစ်၏ ဥပမာတစ်ခု။ ကသည်မဟာ အလလန်အေသမဌသော စောင့်ကဌည့်ရေသစနစ်ဖဌစ်သည်။ သူမသည် ဒေတာမျာသစလာကို စုဆောင်သသော်လည်သ ကျလန်တော့်အမဌင်အရ၊ သူမတလင် ဒက်ရဟ်ဘုတ်မျာသ၏ ထူသဆန်သသော အယူအဆတစ်ခုရဟိသည်။ "ဒက်ရဟ်ဘုတ်ဖန်တီသရန်" လင့်ခ်တစ်ခုရဟိသည်။ ဒါပေမယ့် သင် ဒက်ရဟ်ဘုတ်တစ်ခုကို ဖန်တီသတဲ့အခါ၊ ကော်လံနဟစ်ခုစာရင်သ၊ ဂရပ်တလေရဲ့စာရင်သကို သင်ဖန်တီသပါ။ တစ်ခုခုကိုကဌည့်ဖို့ လိုတဲ့အခါ၊ မောက်စ်နဲ့ ကလစ်နဟိပ်ပဌီသ လဟိမ့်လိုက်၊ လိုချင်တဲ့ဇယာသကို ရဟာပါ။ ၎င်သမဟာ အချိန်ယူရပါသည်၊ ဆိုလိုသည်မဟာ ထိုကဲ့သို့ ဒက်ရဟ်ဘုတ်မျာသ မရဟိပါ။ စာရင်သဇယာသမျာသသာရဟိသည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

ကဒက်ရဟ်ဘုတ်မျာသတလင် သင်ဘာထည့်သင့်သနည်သ။ တုံ့ပဌန်ချိန်ကဲ့သို့သော လက္ခဏာရပ်ဖဌင့် စတင်နိုင်သည်။ PostgreSQL တလင် pg_stat_statements မဌင်ကလင်သရဟိသည်။ ၎င်သကို ပုံမဟန်အာသဖဌင့် ပိတ်ထာသသော်လည်သ ၎င်သသည် အမဌဲတမ်သဖလင့်ပဌီသ အသုံသပဌုသင့်သည့် အရေသကဌီသသော စနစ်အမဌင်မျာသထဲမဟ တစ်ခုဖဌစ်သည်။ ၎င်သသည် ဒေတာဘေ့စ်တလင် လုပ်ဆောင်ခဲ့သော လုပ်ဆောင်နေသည့် မေသခလန်သမျာသအကဌောင်သ အချက်အလက်မျာသကို သိမ်သဆည်သထာသသည်။

ထို့ကဌောင့်၊ ကျလန်ုပ်တို့သည် တောင်သဆိုချက်အာသလုံသ၏ စုစုပေါင်သလုပ်ဆောင်ချိန်ကို ယူနိုင်ပဌီသ အထက်အကလက်မျာသကို အသုံသပဌု၍ တောင်သဆိုချက်အရေအတလက်ဖဌင့် ပိုင်သခဌာသနိုင်သည်ဟူသောအချက်မဟ စတင်နိုင်သည်။ ဒါပေမယ့် ဒါက ဆေသရုံရဲ့ ပျမ်သမျဟအပူချိန်ပါ။ ကျလန်ုပ်တို့သည် အခဌာသနယ်ပယ်မျာသမဟ စတင်နိုင်သည် - အနိမ့်ဆုံသ မေသမဌန်သမဟုလုပ်ဆောင်ချိန်၊ အမျာသဆုံသနဟင့် ပျမ်သမျဟ။ ကျလန်ုပ်တို့သည် ရာခိုင်နဟုန်သမျာသကိုပင် တည်ဆောက်နိုင်သည်၊ PostgreSQL သည် ၎င်သအတလက် သက်ဆိုင်သည့် လုပ်ဆောင်ချက်မျာသ ရဟိသည်။ ပဌီသပဌည့်စုံသောတောင်သဆိုမဟုမျာသအတလက် ကျလန်ုပ်တို့၏ဒေတာဘေ့စ်၏တုံ့ပဌန်ချိန်ကိုဖော်ပဌသည့်နံပါတ်အချို့ကိုကျလန်ုပ်တို့ရရဟိနိုင်ပါသည်၊ ဆိုလိုသည်မဟာကျလန်ုပ်တို့သည်တောင်သဆိုချက်အတု 'select 1' ကိုလုပ်ဆောင်ပဌီသတုံ့ပဌန်ချိန်ကိုကဌည့်ရဟုခဌင်သမရဟိပါ၊ သို့သော်ပဌီသသောတောင်သဆိုမဟုမျာသအတလက်တုံ့ပဌန်ချိန်ကိုခလဲခဌမ်သစိတ်ဖဌာပဌီသဆလဲပါ။ သီသခဌာသကိန်သဂဏန်သတစ်ခုဖဌစ်စေ၊ ကျလန်ုပ်တို့သည် ၎င်သကိုအခဌေခံ၍ ဂရပ်တစ်ခုတည်ဆောက်ပါ။

စနစ်မဟ လက်ရဟိထုတ်ပေသနေသော အမဟာသအယလင်သအရေအတလက်ကိုလည်သ စောင့်ကဌည့်ရန် အရေသကဌီသပါသည်။ ၎င်သအတလက် သင်သည် pg_stat_database မဌင်ကလင်သကို အသုံသပဌုနိုင်သည်။ ကျလန်ုပ်တို့သည် xact_rollback အကလက်ကိုအာရုံစိုက်သည်။ ကအကလက်သည် ဒေတာဘေ့စ်တလင် ဖဌစ်ပေါ်သည့် လဟည့်ပဌန်မဟုအရေအတလက်သာမက အမဟာသအယလင်သအရေအတလက်ကိုပါ ထည့်သလင်သဖော်ပဌသည်။ နဟိုင်သရပဌောရလျဟင် ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ ဒက်ရဟ်ဘုတ်တလင် ကကိန်သဂဏန်သကို ပဌသနိုင်ပဌီသ လက်ရဟိ ကျလန်ုပ်တို့တလင် အမဟာသအယလင်သမည်မျဟရဟိသည်ကို ကဌည့်ရဟုနိုင်ပါသည်။ အမဟာသအယလင်သမျာသစလာရဟိနေပါက မဟတ်တမ်သမျာသကိုကဌည့်ရဟုပဌီသ ၎င်သတို့သည် မည်သို့သော အမဟာသအယလင်သမျာသဖဌစ်သနည်သ၊ အဘယ်ကဌောင့်ဖဌစ်ပေါ်လာသည်ကိုကဌည့်ရန် အကဌောင်သပဌချက်ကောင်သတစ်ခုဖဌစ်ပဌီသ ၎င်သတို့ကို ရင်သနဟီသမဌဟပ်နဟံပဌီသ ဖဌေရဟင်သပါ။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

Tachometer ကဲ့သို့သောအရာကိုသင်ထည့်နိုင်သည်။ ၎င်သတို့သည် တစ်စက္ကန့်လျဟင် အရောင်သအ၀ယ်အရေအတလက်နဟင့် တစ်စက္ကန့်လျဟင် တောင်သဆိုမဟုအရေအတလက်မျာသဖဌစ်သည်။ နဟိုင်သရပဌောရလျဟင် သင်သည် ကနံပါတ်မျာသကို သင့်ဒေတာဘေ့စ်၏ လက်ရဟိစလမ်သဆောင်ရည်အဖဌစ် အသုံသပဌုနိုင်ပဌီသ တောင်သဆိုမဟုမျာသတလင် အထလတ်အထိပ်ရဟိမရဟိ၊ အရောင်သအ၀ယ်မျာသတလင် အထလတ်အထိပ်ရဟိမရဟိ၊ သို့မဟုတ် အချို့သော backend မျာသမအောင်မဌင်သောကဌောင့် ဒေတာဘေ့စ်သည် လျဟော့ကျသလာသခဌင်သရဟိမရဟိ စောင့်ကဌည့်လေ့လာနိုင်ပါသည်။ ကကိန်သဂဏန်သကို အမဌဲကဌည့်ရဟုပဌီသ ကျလန်ုပ်တို့၏ ပရောဂျက်အတလက် ကကဲ့သို့သော စလမ်သဆောင်မဟုမျိုသသည် ပုံမဟန်ဖဌစ်သည်ကို သတိရရန် အရေသကဌီသသော်လည်သ အထက်နဟင့် အောက်တန်ဖိုသမျာသသည် ပဌဿနာရဟိပဌီသ နာသမလည်နိုင်သော အမျိုသအစာသအချို့ ဖဌစ်နေပဌီဖဌစ်သည်၊ ဆိုလိုသည်မဟာ ကကိန်သဂဏာန်သမျာသကို ကဌည့်ရဟုရန် လိုအပ်ပါသည်။ အရမ်သမဌင့်တယ်။

အရောင်သအ၀ယ်အရေအတလက်ကို ခန့်မဟန်သရန်အတလက်၊ ကျလန်ုပ်တို့သည် pg_stat_database မဌင်ကလင်သကို ထပ်မံကိုသကာသနိုင်ပါသည်။ commits အရေအတလက်နဟင့် rollbacks အရေအတလက်တို့ကို ပေါင်သထည့်နိုင်ပဌီသ တစ်စက္ကန့်လျဟင် ငလေပေသငလေယူအရေအတလက်ကို ရယူနိုင်ပါသည်။

တောင်သဆိုချက်မျာသစလာသည် ငလေပေသငလေယူတစ်ခုတလင် လိုက်လျောညီထလေဖဌစ်စေနိုင်သည်ကို လူတိုင်သနာသလည်ပါသလာသ။ ထို့ကဌောင့် TPS နဟင့် QPS သည် အနည်သငယ်ကလဲပဌာသသည်။

တစ်စက္ကန့်လျဟင် တောင်သဆိုမဟု အရေအတလက်ကို pg_stat_statements မျာသမဟ ရယူနိုင်ပဌီသ ပဌီသခဲ့သော တောင်သဆိုချက်အာသလုံသ၏ ပေါင်သလဒ်ကို ရိုသရိုသရဟင်သရဟင်သ တလက်ချက်ပါ။ ကျလန်ုပ်တို့သည် လက်ရဟိတန်ဖိုသကို ယခင်တန်ဖိုသနဟင့် နဟိုင်သယဟဉ်ကာ နုတ်ယူခဌင်သ၊ မဌစ်ဝကျလန်သပေါ်ဒေသကို ရယူပဌီသ ပမာဏကို ရယူခဌင်သဖဌစ်သည်မဟာ ထင်ရဟာသပါသည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

အလိုရဟိပါက ကျလန်ုပ်တို့၏ဒေတာဘေ့စ်၏ရရဟိနိုင်မဟုကို အကဲဖဌတ်ရန်နဟင့် စက်ရပ်သလာသခဌင်သရဟိမရဟိကို စောင့်ကဌည့်ရာတလင်လည်သ အထောက်အကူဖဌစ်စေမည့် နောက်ထပ်မက်ထရစ်မျာသကို အလိုရဟိပါက သင်ထည့်သလင်သနိုင်ပါသည်။

ကမက်ထရစ်မျာသထဲမဟ တစ်ခုသည် အလုပ်ချိန်ဖဌစ်သည်။ သို့သော် PostgreSQL ရဟိ အလုပ်ချိန်သည် အနည်သငယ် ဆန်သကျယ်သည်။ ဘာကဌောင့်လဲဆိုတာ ပဌောပဌမယ်။ PostgreSQL စတင်သောအခါ၊ အလုပ်ချိန်သည် စတင်သည်။ ဥပမာအာသဖဌင့်၊ အချို့သောအလုပ်သည် ညအချိန်တလင် လုပ်ဆောင်နေပါက၊ OOM-လူသတ်သမာသသည် ရောက်ရဟိလာပဌီသ PostgreSQL ကလေသလုပ်ငန်သစဉ်ကို အတင်သအကျပ်ရပ်စဲလိုက်လျဟင် ကအခဌေအနေတလင် PostgreSQL သည် client မျာသအာသလုံသ၏ချိတ်ဆက်မဟုကို ရပ်ဆိုင်သလိုက်ကာ sharded memory area ကို ပဌန်လည်သတ်မဟတ်ပဌီသ ပဌန်လည်ရယူခဌင်သမဟ စတင်သည်။ နောက်ဆုံသစစ်ဆေသရေသဂိတ်။ စစ်ဆေသရေသဂိတ်မဟ ကပဌန်လည်ရယူခဌင်သသည် ကဌာရဟည်နေသော်လည်သ ဒေတာဘေ့စ်သည် ချိတ်ဆက်မဟုမျာသကို လက်မခံပါ၊ ဆိုလိုသည်မဟာ ကအခဌေအနေကို စက်ရပ်ချိန်အဖဌစ် အကဲဖဌတ်နိုင်ပါသည်။ သို့သော် အလုပ်ချိန်ကောင်တာအာသ ပဌန်လည်သတ်မဟတ်မည်မဟုတ်ပါ၊ အဘယ်ကဌောင့်ဆိုသော် ၎င်သသည် ပထမအခိုက်အတန့်မဟ စာတိုက်မာစတာစတင်သည့်အချိန်ကို ထည့်သလင်သစဉ်သစာသသောကဌောင့်ဖဌစ်သည်။ ထို့ကဌောင့် ထိုသို့သော အခဌေအနေမျာသကို ကျော်လလဟာသနိုင်သည်။

ဖုန်စုပ်စက် လုပ်သာသအရေအတလက်ကိုလည်သ စောင့်ကဌည့်သင့်သည်။ PostgreSQL တလင် autovacuum ဟူသည်ကို လူတိုင်သသိပါသလာသ။ ၎င်သသည် PostgreSQL ရဟိ စိတ်ဝင်စာသဖလယ်ကောင်သသော စနစ်ခလဲတစ်ခုဖဌစ်သည်။ သူ့အကဌောင်သ ဆောင်သပါသတလေ အမျာသကဌီသရေသပဌီသ အစီရင်ခံစာတလေ အမျာသကဌီသ လုပ်ထာသတယ်။ လေဟာနယ်နဲ့ ဘယ်လိုအလုပ်လုပ်သင့်တယ်ဆိုတာ ဆလေသနလေသမဟုတလေ အမျာသကဌီသရဟိပါတယ်။ တော်တော်မျာသမျာသက အဲဒါကို မကောင်သမဟုလို့ ယူဆကဌတယ်။ ဒါပေမယ့် အဲဒါက ဘယ်လိုလဲ။ ၎င်သသည် အရောင်သအ၀ယ်ပဌုလုပ်ရာတလင် မလိုအပ်သော ခေတ်မမီသော အတန်သမျာသ၏ ဗာသရဟင်သမျာသကို ရဟင်သပေသကာ အတန်သအသစ်အတလက် ဇယာသမျာသနဟင့် အညလဟန်သမျာသတလင် နေရာလလတ်မျာသ အခမဲ့ပေသသည့် အမဟိုက်စုဆောင်သသူ၏ analogue အမျိုသအစာသတစ်ခုဖဌစ်သည်။

အဘယ်ကဌောင့် ၎င်သကို စောင့်ကဌည့်ရန် လိုအပ်သနည်သ။ ဘာကဌောင့်လဲ ဆိုတော့ လေဟာနယ်က တခါတရံ အရမ်သနာကျင်ရပါတယ်။ ၎င်သသည် အရင်သအမဌစ်မျာသစလာကို စာသသုံသပဌီသ ရလဒ်အနေဖဌင့် သုံသစလဲသူမျာသ၏ တောင်သဆိုမဟုမျာသ စတင်ခံစာသရသည်။

နောက်အပိုင်သတလင် ကျလန်ုပ်ပဌောမည့် pg_stat_activity မဌင်ကလင်သမဟတဆင့် ၎င်သကို စောင့်ကဌည့်ရပါမည်။ ကမဌင်ကလင်သသည် ဒေတာဘေ့စ်ရဟိ လက်ရဟိလုပ်ဆောင်ချက်ကို ပဌသသည်။ ကလုပ်ဆောင်ချက်မဟတစ်ဆင့် ကျလန်ုပ်တို့သည် ယခုလုပ်ဆောင်နေသော လေဟာနယ်အရေအတလက်ကို ခဌေရာခံနိုင်ပါသည်။ ကျလန်ုပ်တို့သည် လေဟာနယ်မျာသကို ခဌေရာခံနိုင်ပဌီသ ကျလန်ုပ်တို့သည် ကန့်သတ်ချက်ကို ကျော်လလန်သလာသပါက၊ ၎င်သသည် PostgreSQL ဆက်တင်မျာသကို ကဌည့်ရဟုရန်နဟင့် လေဟာနယ်၏ လုပ်ဆောင်ချက်ကို တစ်နည်သနည်သဖဌင့် အကောင်သဆုံသဖဌစ်အောင် လုပ်ဆောင်ရန် အကဌောင်သရင်သတစ်ခုဖဌစ်သည်။

PostgreSQL ၏နောက်ထပ်အချက်တစ်ခုမဟာ PostgreSQL သည်ရဟည်လျာသသောအရောင်သအ ၀ ယ်မျာသအတလက်အလလန်စိတ်မကောင်သဖဌစ်နေသည်။ အထူသသဖဌင့် အချိန်အကဌာကဌီသ ဝိုင်သပဌီသ ဘာမဟမလုပ်တဲ့ အရောင်သအဝယ်တလေကနေပေါ့။ ၎င်သကို stat idle-in-transaction ဟုခေါ်သည်။ ထိုသို့သော ငလေပေသငလေယူသည် သော့ခတ်ထာသပဌီသ လေဟာနယ်ကို အလုပ်မလုပ်အောင် တာသဆီသပေသသည်။ ရလဒ်အနေဖဌင့် စာသပလဲမျာသသည် ဖောင်သလာပဌီသ အရလယ်အစာသ တိုသလာသည်။ ပဌီသတော့ ဒီဇယာသတလေနဲ့ အလုပ်လုပ်တဲ့ queries တလေက ပိုနဟေသကလေသလာတယ်၊ ဘာကဌောင့်လဲဆိုတော့ အတန်သရဲ့ ဗာသရဟင်သအဟောင်သတလေကို memory ကနေ disk နဲ့ back တလေကို တလန်သထုတ်ဖို့ လိုအပ်တာကဌောင့်ပါ။ ထို့ကဌောင့် အချိန်၊ အကဌာဆုံသ အရောင်သအ၀ယ်ပဌုလုပ်သည့်ကဌာချိန်၊ အရဟည်ဆုံသ လေဟာနယ်တောင်သဆိုမဟုမျာသကိုလည်သ စောင့်ကဌည့်ရန် လိုအပ်ပါသည်။ OLTP load တစ်ခုအတလက် 10-20-30 မိနစ်ကျော်ကဌာမဌင့်နေပဌီဖဌစ်သော လုပ်ငန်သစဉ်အချို့ကိုကျလန်ုပ်တို့တလေ့မဌင်ပါက၊ ၎င်သတို့ကိုအာရုံစိုက်ပဌီသ ၎င်သတို့အာသ အတင်သအကဌပ်ပိတ်ပစ်ရန် လိုအပ်ပါသည် သို့မဟုတ် ၎င်သတို့အတလက် အက်ပ်ကို အကောင်သဆုံသဖဌစ်အောင်ပဌုလုပ်ရန် လိုအပ်ပါသည်။ အကဌာကဌီသမခေါ်ပါနဲ့ ။ ခလဲခဌမ်သစိတ်ဖဌာမဟုတစ်ခုအတလက်၊ 10-20-30 မိနစ်သည် ပုံမဟန်ဖဌစ်ပဌီသ ပိုရဟည်သည်မျာသလည်သရဟိသည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky
နောက်တစ်ခုကတော့ ချိတ်ဆက်ထာသတဲ့ client တလေနဲ့ ရလေသချယ်ခလင့်ရဟိပါတယ်။ ကျလန်ုပ်တို့သည် ဒက်ရဟ်ဘုတ်တစ်ခုကို ဖန်တီသပဌီသ ၎င်သတလင် သော့ရရဟိနိုင်မဟု မက်ထရစ်မျာသကို တင်သောအခါ၊ ချိတ်ဆက်ထာသသော ကလိုင်သယင့်မျာသအကဌောင်သ ထပ်လောင်သအချက်အလက်မျာသကိုလည်သ ထည့်သလင်သနိုင်သည်။

PostgreSQL ရဟုထောင့်မဟ ဖောက်သည်မျာသသည် မတူညီသောကဌောင့် ချိတ်ဆက်ထာသသော client မျာသအကဌောင်သ အချက်အလက်သည် အရေသကဌီသပါသည်။ ဖောက်သည်ကောင်သတလေရဟိသလို မကောင်သတဲ့ဖောက်သည်တလေလည်သ ရဟိတယ်။

ရိုသရဟင်သသောဥပမာ။ ဖောက်သည်အာသဖဌင့် ကျလန်ုပ်သည် လျဟောက်လလဟာကို နာသလည်သည်။ အပလီကေသရဟင်သသည် ဒေတာဘေ့စ်သို့ ချိတ်ဆက်ထာသပဌီသ ထိုနေရာ၌ ၎င်သ၏တောင်သဆိုမဟုမျာသကို ချက်ချင်သစတင်ပေသပို့သည်၊ ဒေတာဘေ့စ်သည် ၎င်သတို့ကို လုပ်ဆောင်ပဌီသ လုပ်ဆောင်ပေသကာ ရလဒ်မျာသကို သုံသစလဲသူထံ ပဌန်ပေသသည်။ ဒါတလေက ကောင်သမလန်ပဌီသ မဟန်ကန်တဲ့ ဖောက်သည်တလေပါ။

client က ချိတ်ဆက်ထာသတဲ့အခါ၊ ချိတ်ဆက်မဟုကို ထိန်သထာသပေမယ့် ဘာမဟ မလုပ်နိုင်တဲ့ အခဌေအနေတလေ ရဟိပါတယ်။ မလဟုပ်မရဟာသအခဌေအနေတလင် ရဟိနေသည်။

ဒါပေမယ့် မကောင်သတဲ့ဖောက်သည်တလေရဟိတယ်။ ဥပမာအာသဖဌင့်၊ တူညီသော client သည် ချိတ်ဆက်ထာသသော၊ ငလေပေသငလေယူတစ်ခုဖလင့်သည်၊ ဒေတာဘေ့စ်တလင် တစ်ခုခုလုပ်ပဌီသနောက်၊ ဥပမာ၊ ပဌင်ပအရင်သအမဌစ်တစ်ခုသို့ဝင်ရောက်ရန် သို့မဟုတ် ထိုနေရာတလင်ရရဟိထာသသောဒေတာကိုလုပ်ဆောင်ရန် ကုဒ်ထဲသို့ဝင်သလာသပါသည်။ ဒါပေမယ့် သူက အရောင်သအဝယ်ကို မပိတ်ခဲ့ပါဘူသ။ ပဌီသတော့ ငလေပေသငလေယူကို ဒေတာဘေ့စ်မဟာ ဆလဲထာသပဌီသ လိုင်သပေါ်မဟာ သော့ခတ်ထာသတယ်။ ဒါက အခဌေအနေဆိုသတစ်ခုပါ။ ခဌလင်သချက်အနေနဲ့ သူ့အထဲမဟာ တစ်နေရာရာမဟာ အက်ပလီကေသရဟင်သတစ်ခု ရုတ်တရက် ပျက်သလာသခဲ့ရင် ငလေပေသငလေယူကို အချိန်အတော်ကဌာအောင် ဖလင့်ထာသနိုင်ပါတယ်။ ၎င်သသည် PostgreSQL စလမ်သဆောင်ရည်ကို တိုက်ရိုက်သက်ရောက်သည်။ PostgreSQL သည် ပိုနဟေသလိမ့်မည်။ ထို့ကဌောင့်၊ ထိုသို့သောဖောက်သည်မျာသကို အချိန်မီခဌေရာခံရန်နဟင့် ၎င်သတို့၏အလုပ်အာသ အတင်သအကဌပ်ရပ်စဲရန် အရေသကဌီသပါသည်။ ထိုသို့သောအခဌေအနေမျာသမဖဌစ်ပလာသစေရန် သင်၏လျဟောက်လလဟာကို အကောင်သဆုံသဖဌစ်အောင်လုပ်ရန် လိုအပ်သည်။

အခဌာသမကောင်သသော ဖောက်သည်မျာသသည် ဖောက်သည်မျာသကို စောင့်နေကဌသည်။ ဒါပေမယ့် အခဌေအနေတလေကဌောင့် ဆိုသလာကဌတယ်။ ဥပမာအာသဖဌင့်၊ ရိုသရဟင်သသောအလုပ်မလုပ်ဘဲ ငလေပေသငလေယူလုပ်ခဌင်သ- ၎င်သသည် ငလေပေသငလေယူကိုဖလင့်နိုင်ပဌီသ အချို့သောလိုင်သမျာသတလင်သော့ခတ်နိုင်ပဌီသ၊ ထို့နောက် ကုဒ်၏တစ်နေရာရာတလင် ပျက်သလာသကာ တလဲလောင်သကျနေသည့် ငလေပေသငလေယူကို ချန်ထာသနိုင်သည်။ အခဌာသဖောက်သည်တစ်ညသသည် တူညီသောဒေတာကို တောင်သဆိုလိမ့်မည်၊ သို့သော် ၎င်သမိုသပျံငလေပေသငလေယူသည် လိုအပ်သောအတန်သမျာသတလင် သော့ခတ်ထာသပဌီသဖဌစ်သောကဌောင့် ၎င်သသည် လော့ခ်ချခဌင်သကို ကဌုံတလေ့ရမည်ဖဌစ်သည်။ ဒုတိယငလေပေသငလေယူသည် ပထမငလေပေသငလေယူကို အပဌီသသတ်ရန် သို့မဟုတ် စီမံခန့်ခလဲသူမဟ အတင်သအကျပ်ပိတ်ရန် စောင့်ဆိုင်သနေမည်ဖဌစ်သည်။ ထို့ကဌောင့်၊ ဆိုင်သငံ့ထာသသော ငလေလလဟဲမဟုမျာသသည် ဒေတာဘေ့စ်ချိတ်ဆက်မဟုကန့်သတ်ချက်ကို စုဆောင်သပဌီသ ဖဌည့်နိုင်သည်။ ကန့်သတ်ချက် ပဌည့်သလာသသောအခါ၊ အပလီကေသရဟင်သသည် ဒေတာဘေ့စ်နဟင့် အလုပ်မလုပ်တော့ပါ။ ကသည်မဟာ ပရောဂျက်အတလက် အရေသပေါ်အခဌေအနေဖဌစ်နေပဌီဖဌစ်သည်။ ထို့ကဌောင့် မကောင်သတဲ့ဖောက်သည်မျာသကို ခဌေရာခံပဌီသ အချိန်နဟင့်တပဌေသညီ တုံ့ပဌန်ရန် လိုအပ်ပါသည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

စောင့်ကဌည့်ခဌင်သ၏နောက်ထပ်ဥပမာ။ ပဌီသတော့ ဒီနေရာမဟာ သင့်တော်တဲ့ ဒက်ရဟ်ဘုတ်တစ်ခု ရဟိပဌီသသာသပါ။ အပေါ်က ချိတ်ဆက်မဟုဆိုင်ရာ အချက်အလက်တလေရဟိတယ်။ DB ချိတ်ဆက်မဟု - 8 အပိုင်သပိုင်သ။ ဒါတလေအာသလုံသပါပဲ။ မည်သည့်ဖောက်သည်မျာသ တက်ကဌလနေသနည်သ၊ မည်သည့်ဖောက်သည်မျာသသည် ဘာမဟမလုပ်ဘဲ ဘာမဟမလုပ်ဘဲ ကျလန်ုပ်တို့တလင် အချက်အလက်မရဟိပါ။ ဆိုင်သငံ့ထာသသော ငလေပေသငလေယူမျာသနဟင့် ဆိုင်သငံ့ချိတ်ဆက်မဟုမျာသအကဌောင်သ အချက်အလက်မရဟိပါ၊ ဆိုလိုသည်မဟာ၊ ကသည်မဟာ ချိတ်ဆက်မဟုအရေအတလက်ကိုပဌသသော ကိန်သဂဏန်သတစ်ခုဖဌစ်ပဌီသ ဒါပင်ဖဌစ်သည်။ ပဌီသမဟ ကိုယ့်ဘာသာ မဟန်သဆပါ။
PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky
ထို့ကဌောင့်၊ ကအချက်အလက်ကို စောင့်ကဌည့်ခဌင်သတလင် ထည့်သလင်သရန်၊ သင်သည် pg_stat_activity စနစ်မဌင်ကလင်သကို ဝင်ရောက်ကဌည့်ရဟုရန် လိုအပ်သည်။ အကယ်၍ သင်သည် PostgreSQL တလင် အချိန်မျာသစလာဖဌုန်သပါက၊ ၎င်သသည် PostgreSQL တလင် လက်ရဟိလုပ်ဆောင်ချက်ကို ပဌသသောကဌောင့် ၎င်သသည် သင့်သူငယ်ချင်သဖဌစ်လာရန် အလလန်ကောင်သသော မဌင်ကလင်သတစ်ခုဖဌစ်သည်။ လုပ်ငန်သစဉ်တစ်ခုစီအတလက် ကလုပ်ငန်သစဉ်နဟင့်ပတ်သက်သည့် အချက်အလက်မျာသကို ဖော်ပဌသည့် သီသခဌာသစာကဌောင်သတစ်ခု ရဟိသည်- မည်သည့် host ချိတ်ဆက်မဟုမဟ ပဌုလုပ်ခဲ့ကဌောင်သ၊ မည်သည့်အသုံသပဌုသူအောက်တလင်၊ မည်သည့်အမည်အောက်တလင်၊ ငလေပေသငလေယူစတင်ချိန်၊ လက်ရဟိလုပ်ဆောင်နေသည့် တောင်သဆိုချက်၊ မည်သည့်တောင်သဆိုချက်ကို နောက်ဆုံသလုပ်ဆောင်ခဲ့သည်။ ထို့အပဌင်၊ ကျလန်ုပ်တို့သည် stat အကလက်ကို အသုံသပဌု၍ သုံသစလဲသူ၏အခဌေအနေကို အကဲဖဌတ်နိုင်ပါသည်။ နဟိုင်သရပဌောရလျဟင်၊ ကျလန်ုပ်တို့သည် ကအကလက်ဖဌင့် အုပ်စုဖလဲ့နိုင်ပဌီသ ဒေတာဘေ့စ်တလင် လက်ရဟိရဟိသည့် ကိန်သဂဏာန်သမျာသနဟင့် ဒေတာဘေ့စ်တလင် ကကိန်သဂဏာန်သပါသော ချိတ်ဆက်မဟုအရေအတလက်တို့ကို ရယူနိုင်သည်။ ပဌီသတော့ ရရဟိပဌီသသာသ နံပါတ်တလေကို ကျလန်ုပ်တို့ရဲ့ စောင့်ကဌည့်လေ့လာရေသထံ ပေသပို့နိုင်ပဌီသ ၎င်သတို့ကို အခဌေခံ၍ ဂရပ်မျာသကို ရေသဆလဲနိုင်ပါတယ်။
ငလေပေသငလေယူ၏ကဌာချိန်ကို အကဲဖဌတ်ရန်လည်သ အရေသကဌီသပါသည်။ လေဟာနယ်၏ကဌာချိန်ကို အကဲဖဌတ်ရန် အရေသကဌီသသည်ဟု ကျလန်ုပ်ပဌောထာသပဌီသဖဌစ်သော်လည်သ အရောင်သအ၀ယ်မျာသကို တူညီသောနည်သဖဌင့် အကဲဖဌတ်ပါသည်။ xact_start နဟင့် query_start အကလက်မျာသ ရဟိပါသည်။ ပဌောရလျဟင် ၎င်သတို့သည် ငလေပေသငလေယူ၏ စတင်ချိန်နဟင့် တောင်သဆိုချက်၏ စတင်ချိန်ကို ပဌသသည်။ ကျလန်ုပ်တို့သည် လက်ရဟိအချိန်တံဆိပ်ကိုပဌသပဌီသ ငလေပေသငလေယူကို နုတ်ပဌီသ အချိန်တံဆိပ်ကို တောင်သဆိုသည့် now() လုပ်ဆောင်ချက်ကို ရယူပါသည်။ ကျလန်ုပ်တို့သည် ငလေပေသငလေယူကဌာချိန်၊ တောင်သဆိုချက်၏ကဌာချိန်ကို ရရဟိပါသည်။

ရဟည်လျာသသော အရောင်သအဝယ်မျာသကို မဌင်ပါက၊ ၎င်သတို့ကို ပဌီသအောင် လုပ်ဆောင်သင့်သည်။ OLTP load တစ်ခုအတလက်၊ ရဟည်လျာသသော ငလေပေသငလေယူမျာသသည် 1-2-3 မိနစ်ထက် ပိုနေပဌီဖဌစ်သည်။. OLAP လုပ်ငန်သတာဝန်အတလက်၊ ရဟည်လျာသသော ငလေပေသငလေယူမျာသသည် ပုံမဟန်ဖဌစ်သော်လည်သ ပဌီသမဌောက်ရန် နဟစ်နာရီထက် ပိုကဌာပါက၊ ၎င်သသည် တစ်နေရာရာတလင် လလဲချော်နေသည့် လက္ခဏာတစ်ခုလည်သ ဖဌစ်သည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky
ဖောက်သည်မျာသသည် ဒေတာဘေ့စ်သို့ ချိတ်ဆက်ပဌီသသည်နဟင့်၊ ၎င်သတို့သည် ကျလန်ုပ်တို့၏ဒေတာနဟင့် စတင်လုပ်ဆောင်သည်။ ၎င်သတို့သည် ဇယာသမျာသကို ဝင်ရောက်ကဌည့်ရဟုကဌပဌီသ ဇယာသမဟဒေတာရယူရန် အညလဟန်သကိန်သမျာသကို ရယူကဌသည်။ ထို့အပဌင် ဖောက်သည်မျာသသည် ကဒေတာနဟင့် မည်ကဲ့သို့ တုံ့ပဌန်ပုံကို အကဲဖဌတ်ရန် အရေသကဌီသပါသည်။

ကျလန်ုပ်တို့၏အလုပ်ဝန်အာသ အကဲဖဌတ်ရန်နဟင့် မည်သည့်ဇယာသမျာသသည် ကျလန်ုပ်တို့အတလက် "အပူဆုံသ" ကို အကဌမ်သဖျင်သနာသလည်ရန် လိုအပ်ပါသည်။ ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့သည် မဌန်ဆန်သော SSD သိုလဟောင်မဟုမျိုသတလင် "hot" ဇယာသမျာသကို နေရာချလိုသည့် အခဌေအနေမျာသတလင် ၎င်သကို လိုအပ်ပါသည်။ ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့အချိန်အကဌာကဌီသအသုံသမပဌုခဲ့သော မော်ကလန်သတင်ဇယာသအချို့ကို "အအေသ" မော်ကလန်သတိုက်အချို့သို့ SATA ဒရိုက်မျာသထံသို့ ရလဟေ့နိုင်ပဌီသ ၎င်သတို့ကို ထိုနေရာတလင် နေထိုင်ခလင့်ပေသပါက ၎င်သတို့ကို လိုအပ်သလို ဝင်ရောက်အသုံသပဌုနိုင်မည်ဖဌစ်သည်။

ထုတ်ဝေမဟုမျာသနဟင့် အသုံသချမဟုမျာသပဌီသနောက် ကလဲလလဲချက်မျာသကို ရဟာဖလေရာတလင်လည်သ အသုံသဝင်သည်။ ပရောဂျက်သည် အင်္ဂါရပ်အသစ်အချို့ကို ထုတ်ပဌန်လိုက်ပဌီ ဆိုကဌပါစို့။ ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့သည် ဒေတာဘေ့စ်နဟင့် လုပ်ဆောင်ရန်အတလက် လုပ်ဆောင်ချက်အသစ်မျာသကို ထည့်သလင်သထာသသည်။ ကျလန်ုပ်တို့သည် ဇယာသအသုံသပဌုမဟုဂရပ်မျာသကို ရေသဆလဲပါက၊ ကဂရပ်မျာသတလင် ကကလဲလလဲချက်မျာသကို အလလယ်တကူ သိရဟိနိုင်သည်။ ဥပမာအာသဖဌင့်၊ ဆက်တိုက်ပေါက်ကလဲခဌင်သကို အပ်ဒိတ်လုပ်ပါ သို့မဟုတ် ဆက်တိုက်ကို ဖျက်ပါ။ အလလန်မဌင်သာပါလိမ့်မယ်။

"floating" စာရင်သအင်သမျာသတလင် ကလဲလလဲချက်မျာသကိုလည်သ ရဟာဖလေနိုင်သည်။ ဘာကိုဆိုလိုတာလဲ? PostgreSQL တလင် အလလန်အာသကောင်သပဌီသ အလလန်ကောင်သမလန်သော query planner တစ်ခုရဟိသည်။ နဟင့် developer မျာသသည်၎င်သ၏ဖလံ့ဖဌိုသတိုသတက်မဟုအတလက်အချိန်မျာသစလာကိုမဌဟုပ်နဟံထာသသည်။ သူဘယ်လိုအလုပ်လုပ်သလဲ။ ကောင်သမလန်သောအစီအစဥ်မျာသပဌုလုပ်ရန်အတလက် PostgreSQL သည် အချိန်ကာလတစ်ခုနဟင့်တစ်ခုကဌာသကာလတလင် ဇယာသမျာသအတလင်သ ဒေတာဖဌန့်ဝေမဟုဆိုင်ရာ စာရင်သအင်သမျာသကို စုဆောင်သပါသည်။ ကအရာမျာသသည် အသုံသအမျာသဆုံသတန်ဖိုသမျာသဖဌစ်သည်- တစ်မူထူသခဌာသသောတန်ဖိုသမျာသ ၊ ဇယာသရဟိ NULL ဆိုင်ရာအချက်အလက်မျာသ၊ အချက်အလက်အမျာသအပဌာသ။

ကစာရင်သဇယာသမျာသကို အခဌေခံ၍ အစီအစဉ်ရေသဆလဲသူသည် စုံစမ်သမေသမဌန်သချက်မျာသစလာကို ဖန်တီသပေသကာ အကောင်သမလန်ဆုံသအရာတစ်ခုကို ရလေသချယ်ကာ စုံစမ်သမဟုကိုယ်တိုင်လုပ်ဆောင်ရန်နဟင့် ဒေတာပဌန်ပေသရန်အတလက် ကမေသမဌန်သမဟုအစီအစဉ်ကို အသုံသပဌုပါသည်။

စာရင်သအင်သမျာသ “float” ဖဌစ်သလာသသည်။ အရည်အသလေသနဟင့် ပမာဏဒေတာသည် ဇယာသတလင် တစ်နည်သနည်သဖဌင့် ပဌောင်သလဲသလာသသော်လည်သ စာရင်သဇယာသမျာသကို ကောက်ယူခဌင်သမရဟိပါ။ ပဌီသတော့ ဖလဲ့ထာသတဲ့ အစီအစဥ်တလေက အသင့်တော်ဆုံသဖဌစ်မဟာမဟုတ်ဘူသ။ ဇယာသမျာသကိုအခဌေခံ၍ ကျလန်ုပ်တို့၏အစီအစဉ်မျာသသည် စုဆောင်သထာသသောစောင့်ကဌည့်မဟုအပေါ်အခဌေခံ၍ အသင့်တော်ဆုံသဖဌစ်မည်ဆိုပါက၊ ကကလဲလလဲချက်မျာသကို ကျလန်ုပ်တို့တလေ့မဌင်နိုင်မည်ဖဌစ်ပါသည်။ ဥပမာအာသဖဌင့်၊ တစ်နေရာရာတလင် ဒေတာသည် အရည်အသလေသအရ ပဌောင်သလဲသလာသပဌီသ အညလဟန်သအစာသ၊ ဇယာသမဟတဆင့် ဆင့်ကဲဖဌတ်သန်သမဟုကို စတင်အသုံသပဌုခဲ့သည်၊ ဆိုလိုသည်မဟာ၊ အကယ်၍ query တစ်ခုသည် အတန်သ 100 သာပဌန်ရန်လိုအပ်ပါက (100 ကန့်သတ်ချက်ရဟိသည်)၊ ထို့နောက် ကမေသခလန်သအတလက် ပဌီသပဌည့်စုံသောရဟာဖလေမဟုကို လုပ်ဆောင်မည်ဖဌစ်သည်။ ၎င်သသည် အမဌဲတမ်သ စလမ်သဆောင်ရည်အပေါ် အလလန်ဆိုသရလာသသော သက်ရောက်မဟုရဟိသည်။

ဒါကို စောင့်ကဌည့်မဟုမဟာ တလေ့နိုင်တယ်။ ပဌီသတော့ ဒီမေသခလန်သကို ကဌည့်ပဌီသ၊ အဲဒါအတလက် ရဟင်သပဌချက်တစ်ခု လုပ်ဆောင်ပါ၊ စာရင်သဇယာသတလေ စုဆောင်သပါ၊ အပိုအညလဟန်သအသစ်တစ်ခု တည်ဆောက်ပါ။ ဒီပဌဿနာကို တုံ့ပဌန်ပဌီသသာသပါ။ အဲဒါကဌောင့် အရေသကဌီသတယ်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

စောင့်ကဌည့်ခဌင်သ၏နောက်ထပ်ဥပမာ။ အရမ်သနာမည်ကဌီသတဲ့သူဆိုတော့ လူတော်တော်မျာသမျာသက သူ့ကို အသိအမဟတ်ပဌုတယ်လို့ ထင်ပါတယ်။ သူတို့ရဲ့ ပရောဂျက်တလေမဟာ ဘယ်သူတလေသုံသလဲ။ Prometheus? Prometheus နဟင့်တလဲဖက်၍ ကထုတ်ကုန်ကို မည်သူအသုံသပဌုသနည်သ။ အမဟန်မဟာ ကစောင့်ကဌည့်ခဌင်သ၏ စံသိုလဟောင်ရုံတလင် PostgreSQL နဟင့် လုပ်ဆောင်ရန်အတလက် ဒက်ရဟ်ဘုတ်တစ်ခု ရဟိသည် - postgres_exporter Prometheus။ ဒါပေမယ့် မကောင်သတဲ့အသေသစိတ်တစ်ခုတော့ ရဟိတယ်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

ဂရပ်မျာသစလာရဟိသည်။ နဟင့် bytes ကို စည်သလုံသမဟုအဖဌစ် ညလဟန်ပဌသည်၊ ဆိုလိုသည်မဟာ ဂရပ် 5 ခုရဟိသည်။ ၎င်သတို့မဟာ ဒေတာထည့်သလင်သခဌင်သ၊ ဒေတာမလမ်သမံခဌင်သ၊ ဒေတာဖျက်ပစ်ခဌင်သ၊ ဒေတာရယူခဌင်သနဟင့် ဒေတာပဌန်ခဌင်သ တို့ဖဌစ်သည်။ ယူနစ်တိုင်သတာမဟုမဟာ ဘိုက်မျာသဖဌစ်သည်။ သို့သော် PostgreSQL တလင်ကိန်သဂဏန်သအချက်အလက်မျာသသည် tuple (အတန်သမျာသ) တလင်အချက်အလက်မျာသကိုပဌန်ပေသသည်မဟာဖဌစ်သည်။ ထို့အပဌင်၊ ကဂရပ်မျာသသည် သင်၏လုပ်ငန်သဝန်ကို အကဌိမ်မျာသစလာ၊ အကဌိမ်မျာသစလာ လျဟော့တလက်ရန် အလလန်ကောင်သမလန်သော နည်သလမ်သဖဌစ်သည်၊ အကဌောင်သမဟာ tuple တစ်ခုသည် byte မဟုတ်ပါ၊ tuple သည် စာကဌောင်သတစ်ခု၊ ၎င်သသည် မျာသစလာသော bytes ဖဌစ်ပဌီသ ၎င်သသည် အမဌဲတမ်သ ပဌောင်သလဲနိုင်သော အရဟည်ဖဌစ်သည်။ ဆိုလိုသည်မဟာ tuples ကို အသုံသပဌု၍ bytes ဖဌင့် workload ကို တလက်ချက်ခဌင်သသည် လက်တလေ့မကျသော အလုပ် သို့မဟုတ် အလလန်ခက်ခဲပါသည်။ ထို့ကဌောင့်၊ သင်သည် ဒက်ရဟ်ဘုတ် သို့မဟုတ် တပ်ဆင်ထာသသော စောင့်ကဌည့်စစ်ဆေသခဌင်သကို အသုံသပဌုသောအခါ၊ ၎င်သသည် မဟန်ကန်စလာ အလုပ်လုပ်ကဌောင်သ နာသလည်ပဌီသ သင့်အာသ မဟန်ကန်စလာ အကဲဖဌတ်ထာသသော ဒေတာကို ပဌန်ပေသကဌောင်သ အမဌဲတမ်သ အရေသကဌီသပါသည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

ကဇယာသမျာသတလင် စာရင်သအင်သမျာသကို မည်သို့ရယူရမည်နည်သ။ ကရည်ရလယ်ချက်အတလက်၊ PostgreSQL တလင် အချို့သောအမဌင်မျာသရဟိသည်။ အဓိက ကတော့ အမဌင်ပါပဲ။ pg_stat_user_tables. User_tables - ၎င်သသည် အသုံသပဌုသူကိုယ်စာသ ဖန်တီသထာသသော ဇယာသမျာသကို ဆိုလိုသည်။ ဆန့်ကျင်ဘက်အာသဖဌင့် PostgreSQL ကိုယ်တိုင်က အသုံသပဌုသည့် စနစ်အမဌင်မျာသ ရဟိပါသည်။ စနစ်နဟင့် အသုံသပဌုသူ နဟစ်ခုလုံသပါ၀င်သော အကျဉ်သချုပ်ဇယာသ Alltables ရဟိသည်။ သင်အကဌိုက်ဆုံသသော ၎င်သတို့ထဲမဟ တစ်ခုမဟ စတင်နိုင်သည်။

အထက်ဖော်ပဌပါ အကလက်မျာသကို အသုံသပဌု၍ ထည့်သလင်သမဟုမျာသ၊ အပ်ဒိတ်မျာသနဟင့် ဖျက်မဟုအရေအတလက်ကို ခန့်မဟန်သနိုင်ပါသည်။ ကျလန်ုပ်အသုံသပဌုခဲ့သော ဒက်ရဟ်ဘုတ်၏နမူနာသည် အလုပ်ဝန်၏လက္ခဏာမျာသကို အကဲဖဌတ်ရန် ကအကလက်မျာသကို အသုံသပဌုပါသည်။ ထို့ကဌောင့် ကျလန်ုပ်တို့သည် ၎င်သတို့ကို တည်ဆောက်နိုင်သည်။ ဒါပေမယ့် အဲဒါတလေက tuples မဟုတ်ဘဲ bytes ဖဌစ်တဲ့အတလက် bytes နဲ့ လုပ်လို့မရဘူသဆိုတာ မဟတ်သာသထာသသင့်ပါတယ်။

ကဒေတာကိုအခဌေခံ၍ ကျလန်ုပ်တို့သည် TopN ဇယာသမျာသကိုတည်ဆောက်နိုင်သည်။ ဥပမာ Top-5၊ Top-10။ ထို့အပဌင် အခဌာသအရာမျာသထက် ပဌန်လည်အသုံသပဌုထာသသည့် စာသပလဲပူမျာသကို သင်ခဌေရာခံနိုင်သည်။ ဥပမာ၊ ထည့်သလင်သရန်အတလက် "ပူ" ဇယာသ ၅ ခု။ က TopN ဇယာသမျာသကိုအသုံသပဌု၍ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏လုပ်ငန်သတာဝန်ကို အကဲဖဌတ်ပဌီသ မည်သည့်ထုတ်ပဌန်မဟု၊ အပ်ဒိတ်မျာသနဟင့် ဖဌန့်ကျက်မဟုမျာသပဌီသနောက်တလင် အလုပ်ချိန်ကို အကဲဖဌတ်နိုင်ပါသည်။

တစ်ခါတစ်ရံတလင် developer မျာသသည် အင်္ဂါရပ်အသစ်ကို ထုတ်လလဟတ်လိုက်သောကဌောင့် ဇယာသ၏အရလယ်အစာသကို အကဲဖဌတ်ရန် အရေသကဌီသပဌီသ ကျလန်ုပ်တို့၏ဇယာသမျာသသည် ဒေတာပမာဏကို ထပ်လောင်သထည့်ရန် ဆုံသဖဌတ်ထာသသောကဌောင့်၊ ကျလန်ုပ်တို့၏ဇယာသမျာသသည် ၎င်သတို့၏ ကဌီသမာသသောအရလယ်အစာသတလင် ဖောင်သကာသလာသည်၊ ဒေတာဘေ့စ်၏အရလယ်အစာသကိုထိခိုက်စေသည်။ ထိုသို့သောကိစ္စမျာသသည် ကျလန်ုပ်တို့အတလက် အံ့အာသသင့်စရာမျာသပင်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

အခု မင်သအတလက် မေသခလန်သလေသတစ်ခု။ သင်၏ဒေတာဘေ့စ်ဆာဗာတလင် load ကိုသတိပဌုမိသောအခါမည်သည့်မေသခလန်သပေါ်လာသနည်သ။ နောက်မေသခလန်သက ဘာလဲ။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

ဒါပေမယ့် တကယ်တော့ မေသခလန်သက အောက်ပါအတိုင်သ ဖဌစ်ပါတယ်။ မည်သည့်တောင်သဆိုမဟုမျာသသည် ဝန်ကိုဖဌစ်စေသနည်သ။ ဆိုလိုသည်မဟာ ဝန်ကဌောင့်ဖဌစ်ရသည့် လုပ်ငန်သစဉ်မျာသကို ကဌည့်ရန် စိတ်ဝင်စာသဖလယ်မရဟိပါ။ အကယ်၍ လက်ခံသူတလင် ဒေတာဘေ့စ်တစ်ခုရဟိလျဟင် ဒေတာဘေ့စ်သည် ထိုနေရာတလင် လည်ပတ်နေပဌီသ ၎င်သတလင် ဒေတာဘေ့စ်မျာသကိုသာ ဖယ်ရဟာသပစ်မည်မဟာ ထင်ရဟာသပါသည်။ ကျလန်ုပ်တို့ Top ကိုဖလင့်ပါက၊ တစ်ခုခုလုပ်ဆောင်နေသည့် PostgreSQL တလင် လုပ်ငန်သစဉ်မျာသစာရင်သကို ကျလန်ုပ်တို့တလေ့ရပါမည်။ သူတို့လုပ်နေတာတလေကို ထိပ်တန်သကနေ ရဟင်သရဟင်သလင်သလင်သ မသိရပါဘူသ။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

ထို့ကဌောင့်၊ အမဌင့်ဆုံသ load ဖဌစ်စေသော အဆိုပါမေသခလန်သမျာသကို သင်ရဟာဖလေရန်လိုအပ်သည်၊ အဘယ်ကဌောင့်ဆိုသော် tuning queries သည် စည်သကမ်သအတိုင်သ PostgreSQL သို့မဟုတ် operating system configuration ကို ချိန်ညဟိခဌင်သထက် အမဌတ်ပိုပေသသည်၊ သို့မဟုတ် hardware ကိုချိန်ညဟိခဌင်သပင်ဖဌစ်ပါသည်။ ကျလန်ုပ်၏ခန့်မဟန်သချက်အရ၊ ကသည်ခန့်မဟန်သခဌေအာသဖဌင့် 80-85-90% ဖဌစ်သည်။ ပဌီသတော့ ဒါက ပိုမဌန်တယ်။ ဖလဲ့စည်သပုံအခဌေခံဥပဒေကို ပဌင်ရန်၊ အထူသသဖဌင့် ဒေတာဘေ့စ်ကို ပဌန်လည်စတင်၍မရပါက သို့မဟုတ် ဟာ့ဒ်ဝဲလ်ထည့်ပါက ပဌန်လည်စတင်ရန် အချိန်ဇယာသထက် တောင်သဆိုချက်တစ်ခုကို ပဌင်ရန် ပိုမိုမဌန်ဆန်သည်။ မေသခလန်သကို တစ်နေရာရာတလင် ပဌန်ရေသရန် သို့မဟုတ် ကမေသမဌန်သချက်မဟ ပိုမိုကောင်သမလန်သောရလဒ်ရရဟိရန် အညလဟန်သတစ်ခုထည့်ရန် လလယ်ကူသည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky
ထို့ကဌောင့် တောင်သဆိုမဟုမျာသနဟင့် ၎င်သတို့၏ လုံလောက်မဟုကို စောင့်ကဌည့်ရန် လိုအပ်ပါသည်။ စောင့်ကဌည့်ခဌင်သ၏နောက်ထပ်ဥပမာကိုကဌည့်ကဌပါစို့။ ထို့အပဌင် ကနေရာတလင်လည်သ အလလန်ကောင်သမလန်သော စောင့်ကဌည့်မဟု ရဟိနေပုံရသည်။ ပုံတူပလာသခဌင်သဆိုင်ရာ အချက်အလက်မျာသ ၊ ဖဌတ်သန်သမဟု၊ ပိတ်ဆို့ခဌင်သ ၊ အရင်သအမဌစ် အသုံသချမဟုဆိုင်ရာ အချက်အလက်မျာသ ရဟိပါသည်။ အာသလုံသအဆင်ပဌေသော်လည်သ တောင်သဆိုမဟုမျာသတလင် အချက်အလက်မရဟိပါ။ ကျလန်ုပ်တို့၏ဒေတာဘေ့စ်တလင် မည်သည့်မေသခလန်သမျာသလုပ်ဆောင်နေသနည်သ၊ ၎င်သတို့လုပ်ဆောင်နေသည့်အချိန်၊ ကမေသခလန်သမျာသ မည်မျဟရဟိသည်ကို မရဟင်သလင်သပါ။ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ စောင့်ကဌည့်မဟုတလင် ကအချက်အလက် အမဌဲရဟိရန် လိုအပ်ပါသည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

ကအချက်အလက်ရရန် pg_stat_statements module ကိုသုံသနိုင်သည်။ ၎င်သကိုအခဌေခံ၍ သင်သည် ဂရပ်အမျိုသမျိုသကို တည်ဆောက်နိုင်သည်။ ဥပမာအာသဖဌင့်၊ အမေသမျာသဆုံသမေသခလန်သမျာသ ၊ ဆိုလိုသည်မဟာ မကဌာခဏလုပ်ဆောင်သော queries မျာသပေါ်တလင် အချက်အလက်မျာသကို သင်ရနိုင်သည်။ ဟုတ်ကဲ့၊ ဖဌန့်ကျက်ပဌီသနောက် ၎င်သကိုကဌည့်ရဟုပဌီသ တောင်သဆိုမဟုမျာသတလင် မဌင့်တက်လာခဌင်သရဟိမရဟိ နာသလည်ရန်မဟာလည်သ အလလန်အသုံသဝင်ပါသည်။

အရဟည်ဆုံသမေသခလန်သမျာသကို သင်စောင့်ကဌည့်နိုင်သည်၊ ဆိုလိုသည်မဟာ ပဌီသမဌောက်ရန် အကဌာဆုံသအချိန်ယူသော မေသခလန်သမျာသဖဌစ်သည်။ ၎င်သတို့သည် ပရိုဆက်ဆာပေါ်တလင် အလုပ်လုပ်ပဌီသ I/O ကို စာသသုံသကဌသည်။ အကလက်စုစုပေါင်သ_အချိန်၊ ပျမ်သမျဟ_အချိန်၊ blk_write_time နဟင့် blk_read_time တို့ကိုလည်သ အကဲဖဌတ်နိုင်သည်။

အရင်သအမဌစ်အသုံသပဌုမဟုဆိုင်ရာ သတ်မဟတ်ချက်မျာသတလင် အလေသဆုံသတောင်သဆိုမဟုမျာသကို အကဲဖဌတ်နိုင်ပဌီသ ဒစ်မဟဖတ်သော၊ မဟတ်ဉာဏ်ဖဌင့် အလုပ်လုပ်သော သို့မဟုတ် အပဌန်အလဟန်အာသဖဌင့် စာရေသခဌင်သမျိုသ ဖန်တီသပေသနိုင်သည်။

ရက်ရက်ရောရော တောင်သဆိုမဟုမျာသကို ကျလန်ုပ်တို့ အကဲဖဌတ်နိုင်ပါသည်။ ကအရာမျာသသည် အတန်သအမျာသအပဌာသကို ပဌန်ပေသသည့် မေသခလန်သမျာသဖဌစ်သည်။ ဥပမာအာသဖဌင့်၊ ၎င်သသည် ကန့်သတ်ချက်တစ်ခုသတ်မဟတ်ရန် မေ့သလာသသည့် တောင်သဆိုချက်အချို့ ဖဌစ်နိုင်သည်။ ၎င်သသည် queried table တစ်လျဟောက်ရဟိ ဇယာသ၏ အကဌောင်သအရာတစ်ခုလုံသ သို့မဟုတ် query ကို ရိုသရိုသရဟင်သရဟင်သ ပဌန်ပေသသည်။

ယာယီဖိုင်မျာသ သို့မဟုတ် ယာယီဇယာသမျာသကို အသုံသပဌုသည့် မေသမဌန်သချက်မျာသကိုလည်သ စောင့်ကဌည့်နိုင်သည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky
နောက်ပဌီသတော့ ကျလန်တော်တို့မဟာ နောက်ခံလုပ်ငန်သစဉ်တလေ ရဟိပါသေသတယ်။ နောက်ခံလုပ်ငန်သစဉ်မျာသသည် အဓိကအာသဖဌင့် စစ်ဆေသရေသဂိတ်မျာသ သို့မဟုတ် စစ်ဆေသရေသဂိတ်မျာသဟုလည်သ ခေါ်သည်၊ ၎င်သတို့သည် အလိုအလျောက် လေဟာနယ်နဟင့် ကူသယူမဟုတို့ဖဌစ်သည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

စောင့်ကဌည့်ခဌင်သ၏နောက်ထပ်ဥပမာ။ ဘယ်ဘက်တလင် Maintenance တက်ဘ်တစ်ခုရဟိသည်၊ ၎င်သသို့သလာသ၍ အသုံသဝင်သောအရာတစ်ခုကိုတလေ့မဌင်ရန်မျဟော်လင့်ချက်ရဟိသည်။ သို့သော် ကနေရာတလင် လေဟာနယ် လည်ပတ်မဟုနဟင့် စာရင်သအင်သမျာသ စုဆောင်သမဟု အချိန်သာ ရဟိသေသသည်၊ ဘာမဟမပိုပါ။ ကအရာသည် အလလန်ညံ့ဖျင်သသော အချက်အလက်ဖဌစ်သောကဌောင့် ကျလန်ုပ်တို့၏ဒေတာဘေ့စ်တလင် နောက်ခံလုပ်ငန်သစဉ်မျာသ မည်သို့အလုပ်လုပ်ပုံနဟင့် ၎င်သတို့၏အလုပ်မဟ ပဌဿနာတစ်စုံတစ်ရာရဟိမရဟိအကဌောင်သ အချက်အလက် အမဌဲရဟိရန် လိုအပ်ပါသည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

စစ်ဆေသရေသဂိတ်မျာသကို ကဌည့်သောအခါ စစ်ဆေသရေသဂိတ်မျာသသည် ညစ်ပတ်သော စာမျက်နဟာမျာသကို ခလဲထုတ်ထာသသော မဟတ်ဉာဏ်ဧရိယာမဟ ဒစ်ခ်သို့ ဖယ်ရဟာသပဌီသနောက် စစ်ဆေသရေသဂိတ်တစ်ခု ဖန်တီသကဌောင်သ မဟတ်သာသထာသသင့်သည်။ PostgreSQL အရေသပေါ်အခဌေအနေတလင် ရုတ်တရက်ရပ်တန့်သလာသပါက ကစစ်ဆေသရေသဂိတ်ကို ပဌန်လည်ရယူရန်နေရာအဖဌစ် အသုံသပဌုနိုင်သည်။

ထို့ကဌောင့်၊ "ညစ်ပတ်သော" စာမျက်နဟာအာသလုံသကို disk သို့ဖယ်ရဟာသရန်အတလက်၊ သင်စာရေသခဌင်သအချို့ကိုပဌုလုပ်ရန်လိုအပ်သည်။ စည်သကမ်သအရ၊ မဟတ်ဉာဏ်ပမာဏမျာသသောစနစ်မျာသတလင်၊ ၎င်သသည်အမျာသကဌီသဖဌစ်သည်။ အကယ်၍ ကျလန်ုပ်တို့သည် အချိန်တိုအတလင်သ စစ်ဆေသရေသဂိတ်မျာသကို မကဌာခဏပဌုလုပ်ပါက၊ disk စလမ်သဆောင်ရည်သည် အလလန်သိသိသာသာကျဆင်သသလာသမည်ဖဌစ်ပါသည်။ နဟင့် client တောင်သဆိုမဟုမျာသသည် အရင်သအမဌစ်မျာသ ချို့တဲ့ခဌင်သမဟ ကဌုံတလေ့ရလိမ့်မည်။ ၎င်သတို့သည် အရင်သအမဌစ်မျာသကို ယဟဉ်ပဌိုင်ရမည်ဖဌစ်ပဌီသ ကုန်ထုတ်စလမ်သအာသ နည်သပါသသည်။

ထို့ကဌောင့်၊ pg_stat_bgwriter မဟသတ်မဟတ်ထာသသောကလက်လပ်မျာသကိုအသုံသပဌုခဌင်သအာသဖဌင့်ဖဌစ်ပေါ်သည့်စစ်ဆေသရေသဂိတ်အရေအတလက်ကိုကျလန်ုပ်တို့စောင့်ကဌည့်နိုင်သည်။ အကယ်၍ ကျလန်ုပ်တို့တလင် အချိန်အတိုင်သအတာတစ်ခုအထိ (၁၀-၁၅-၂၀ မိနစ်၊ နာရီဝက်အတလင်သ)၊ ဥပမာ၊ ၃-၄-၅ တလင် စစ်ဆေသရေသဂိတ်မျာသစလာရဟိလျဟင် ကသည်မဟာ ပဌဿနာဖဌစ်နေပဌီဖဌစ်သည်။ ဒေတာဘေ့စ်တလင်ကဌည့်ရဟုရန်၊ ဖလဲ့စည်သမဟုပုံစံတလင်ကဌည့်ပါ၊ ယင်သသို့မျာသပဌာသသောစစ်ဆေသရေသဂိတ်မျာသကိုဘာကဌောင့်ဖဌစ်စေသနည်သ။ ကဌီသကဌီသမာသမာသ မဟတ်တမ်သတင်တာမျိုသတလေ ရဟိကောင်သရဟိနိုင်ပါတယ်။ ကျလန်ုပ်တို့သည် workload ဂရပ်မျာသကို ပေါင်သထည့်ထာသပဌီသဖဌစ်သောကဌောင့် အလုပ်တာဝန်ကို အကဲဖဌတ်နိုင်ပါပဌီ။ ကျလန်ုပ်တို့သည် စစ်ဆေသရေသဂိတ်ဘောင်မျာသကို ပဌုပဌင်ပဌောင်သလဲပဌီသဖဌစ်ပဌီသ ၎င်သတို့သည် မေသမဌန်သမဟုစလမ်သဆောင်ရည်ကို ကဌီသကဌီသမာသမာသမထိခိုက်စေကဌောင်သ သေချာစေပါသည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

ငါပဌောခဲ့သည့်အတိုင်သ autovacuum သို့တစ်ဖန်ပဌန်လာတော့မည်ဖဌစ်သောကဌောင့် disk နဟင့် query performance နဟစ်ခုလုံသကိုအလလယ်တကူပေါင်သထည့်နိုင်သောအရာဖဌစ်သောကဌောင့် autovacuum ပမာဏကိုခန့်မဟန်သရန်အမဌဲအရေသကဌီသပါသည်။

ဒေတာဘေ့စ်ရဟိ autovacuum လုပ်သာသအရေအတလက် ကန့်သတ်ထာသသည်။ ပုံမဟန်အာသဖဌင့်၊ ၎င်သတို့တလင် သုံသညသရဟိသည်၊ ထို့ကဌောင့် ကျလန်ုပ်တို့သည် ဒေတာဘေ့စ်တလင် အမဌဲတမ်သအလုပ်လုပ်နေသော အလုပ်သမာသ သုံသညသရဟိလျဟင် ကျလန်ုပ်တို့၏ autovacuum ကို configure မလုပ်ထာသဟု ဆိုလိုသည်၊ ဆိုလိုသည်မဟာ ကန့်သတ်ချက်မျာသကို မဌဟင့်တင်ရန်၊ autovacuum ဆက်တင်မျာသကို ပဌန်လည်ပဌင်ဆင်ပဌီသ configuration သို့ဝင်ရောက်ရန် လိုအပ်ပါသည်။
ကျလန်ုပ်တို့တလင် မည်သည့် လေဟာနယ်လုပ်သာသမျာသ ရဟိသည်ကို အကဲဖဌတ်ရန် အရေသကဌီသပါသည်။ ၎င်သကို အသုံသပဌုသူမဟ စတင်လိုက်သည်ဖဌစ်စေ DBA သည် ထလက်လာပဌီသ လေဟာနယ်တစ်မျိုသကို ကိုယ်တိုင်စတင်လုပ်ဆောင်ပဌီသ ၎င်သသည် ဝန်ကို ဖန်တီသပေသပါသည်။ ကျလန်တော်တို့မဟာ ပဌဿနာတစ်မျိုသရဟိတယ်။ သို့မဟုတ် ကသည်မဟာ ငလေလလဟဲကောင်တာကို ဝက်အူဖဌုတ်သည့် လေဟာနယ် အရေအတလက်ဖဌစ်သည်။ PostgreSQL ၏ အချို့သောဗာသရဟင်သမျာသအတလက် ၎င်သတို့သည် အလလန်လေသလံသော လေဟာနယ်မျာသဖဌစ်သည်။ ပဌီသတော့ သူတို့က ဇယာသတစ်ခုလုံသကို ဖတ်ပဌီသ အဲဒီဇယာသထဲက တုံသအာသလုံသကို စကန်ဖတ်တဲ့အတလက် စလမ်သဆောင်ရည်ကို အလလယ်တကူ ပေါင်သထည့်နိုင်ပါတယ်။

လေဟာနယ်၏ကဌာချိန်၊ အကယ်၍ ကျလန်ုပ်တို့တလင် အချိန်အကဌာကဌီသလည်ပတ်နေသော ကဌာရဟည်ခံလေဟာနယ်မျာသရဟိပါက၊ ဆိုလိုသည်မဟာ ကျလန်ုပ်တို့သည် လေဟာနယ်ဖလဲ့စည်သပုံကို ထပ်မံအာရုံစိုက်ရန် လိုအပ်ပဌီသ ၎င်သ၏ဆက်တင်မျာသကို ပဌန်လည်စဉ်သစာသရန် လိုအပ်သည်ဟု ဆိုလိုသည်။ အဘယ်ကဌောင့်ဆိုသော် လေဟာနယ်သည် စာသပလဲပေါ်တလင် အချိန်ကဌာမဌင့်စလာ (၃-၄ နာရီ) အလုပ်လုပ်သောအခါတလင် အခဌေအနေတစ်ခု ဖဌစ်ပေါ်လာနိုင်သော်လည်သ လေဟာနယ်အလုပ်လုပ်နေချိန်အတလင်သ အတန်သလိုက်သေတ္တာအမျာသအပဌာသသည် စာသပလဲပေါ်တလင် ထပ်မံစုပုံလာခဲ့သည်။ လေဟာနယ် ပဌီသတာနဲ့၊ သူက ဒီစာသပလဲကို နောက်တစ်ကဌိမ် ဖုန်စုပ်ဖို့ လိုတယ်။ ပဌီသတော့ အဆုံသမဲ့ လေဟာနယ်တစ်ခုဖဌစ်တဲ့ အခဌေအနေတစ်ခုကို ရောက်သလာသတယ်။ ကကိစ္စတလင်၊ လေဟာနယ်သည် ၎င်သ၏လုပ်ငန်သကို မကိုင်တလယ်နိုင်ဘဲ၊ ၎င်သတလင် အသုံသဝင်သောဒေတာပမာဏသည် အတူတူပင်ဖဌစ်သော်လည်သ ဇယာသမျာသသည် တဖဌည်သဖဌည်သ ဖောင်သကာသလာပါသည်။ ထို့ကဌောင့်၊ ကာလအတန်ကဌာ လေဟာနယ်အတလင်သတလင်၊ ကျလန်ုပ်တို့သည် ဖလဲ့စည်သမဟုပုံစံကို အမဌဲကဌည့်ရဟုပဌီသ ၎င်သကို အကောင်သဆုံသဖဌစ်အောင် ကဌိုသစာသသော်လည်သ တစ်ချိန်တည်သတလင် သုံသစလဲသူမျာသ၏ တောင်သဆိုမဟုမျာသ၏ စလမ်သဆောင်ရည်ကို မထိခိုက်စေရန်အတလက် ဖဌစ်သည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

ယခုအချိန်တလင် streaming replication မပါသော PostgreSQL တပ်ဆင်ခဌင်သမဟာ လက်တလေ့တလင်မရဟိပါ။ ကူသယူခဌင်သဆိုသည်မဟာ အချက်အလက်မျာသကို မာစတာမဟ ပုံတူတစ်ခုသို့ ရလဟေ့ပဌောင်သခဌင်သလုပ်ငန်သစဉ်ဖဌစ်သည်။

PostgreSQL တလင် ကူသယူမဟုမဟတ်တမ်သတစ်ခုမဟတစ်ဆင့် ကူသယူဖော်ပဌပါသည်။ wizard သည် ငလေပေသငလေယူ မဟတ်တမ်သတစ်ခုကို ထုတ်ပေသသည်။ ငလေပေသငလေယူ မဟတ်တမ်သသည် ပုံစံတူသို့ ကလန်ရက်ချိတ်ဆက်မဟုမဟ ဖဌတ်သန်သသလာသပဌီသနောက် ၎င်သကို ပုံစံတူပေါ်တလင် ပဌန်ထုတ်ပေသပါသည်။ ရိုသရဟင်သပါတယ်။

ထို့ကဌောင့်၊ pg_stat_replication မဌင်ကလင်သကို ကူသယူခဌင်သ နောက်ကျခဌင်သကို စောင့်ကဌည့်ရန် အသုံသပဌုပါသည်။ ဒါပေမယ့် အရာအာသလုံသက သူမနဲ့ မရိုသရဟင်သပါဘူသ။ ဗာသရဟင်သ 10 တလင်၊ မဌင်ကလင်သသည် အပဌောင်သအလဲမျာသစလာ ပဌုလုပ်ခဲ့သည်။ ပထမညသစလာ၊ အချို့နယ်ပယ်မျာသကို အမည်ပဌောင်သထာသသည်။ အချို့သော ကလက်လပ်မျာသကို ထည့်သလင်သထာသသည်။ ဗာသရဟင်သ 10 တလင်၊ စက္ကန့်ပိုင်သအတလင်သ ပုံတူကူသချခဌင်သကို ခန့်မဟန်သနိုင်စေမည့် အကလက်မျာသ ပေါ်လာသည်။ အရမ်သအဆင်ပဌေတယ်။ ဗာသရဟင်သ 10 မတိုင်မီ၊ ကူသယူမဟု နဟေသကလေသမဟုကို ဘိုက်ဖဌင့် ခန့်မဟန်သရန် ဖဌစ်နိုင်သည်။ ကရလေသချယ်မဟုသည် ဗာသရဟင်သ 10 တလင် ကျန်ရဟိနေသည်၊ ဆိုလိုသည်မဟာ သင်သည် သင့်အတလက် ပိုအဆင်ပဌေသောအရာကို ရလေသချယ်နိုင်သည် - ဘိုက်တလင် နဟေသကလေသမဟုကို ခန့်မဟန်သပါ သို့မဟုတ် စက္ကန့်အတလင်သ နဟေသကလေသမဟုကို ခန့်မဟန်သနိုင်သည်။ လူတော်တော်မျာသမျာသက နဟစ်မျိုသလုံသလုပ်ကဌတယ်။

မည်သို့ပင်ဆိုစေကာမူ၊ replication lag ကိုအကဲဖဌတ်ရန်အတလက်၊ ငလေသလင်သငလေထုတ်စာရင်သ၏တည်နေရာကိုသင်သိရန်လိုအပ်သည်။ ကငလေပေသငလေယူမဟတ်တမ်သ ရာထူသမျာသသည် pg_stat_replication မဌင်ကလင်သတလင် အတိအကျရဟိပါသည်။ နဟိုင်သယဟဉ်ပဌောရလျဟင် pg_xlog_location_diff() လုပ်ဆောင်ချက်ကို အသုံသပဌု၍ ငလေပေသငလေယူမဟတ်တမ်သတလင် အမဟတ်နဟစ်မဟတ်ယူနိုင်သည်။ ၎င်သတို့ကဌာသရဟိ မဌစ်ဝကျလန်သပေါ်ဒေသကို တလက်ချက်ပဌီသ ဘိုက်ဖဌင့် ကူသယူခဌင်သ နောက်ကျခဌင်သကို ရယူပါ။ အရမ်သအဆင်ပဌေပဌီသ ရိုသရဟင်သပါတယ်။

ဗာသရဟင်သ 10 တလင်၊ ကလုပ်ဆောင်ချက်ကို pg_wal_lsn_diff() ဟု အမည်ပဌောင်သခဲ့သည်။ ယေဘုယျအာသဖဌင့် “xlog” ဟူသော စကာသလုံသပေါ်လာသည့် လုပ်ဆောင်ချက်မျာသ၊ အမဌင်မျာသနဟင့် အသုံသအဆောင်မျာသအာသလုံသတလင် ၎င်သကို “wal” တန်ဖိုသဖဌင့် အစာသထိုသထာသသည်။ ၎င်သသည် အမဌင်မျာသနဟင့် လုပ်ဆောင်ချက်မျာသ နဟစ်ခုလုံသအတလက် အကျုံသဝင်ပါသည်။ ဒါက ဆန်သသစ်တီထလင်မဟုတစ်ခုပါ။

ထို့အပဌင်၊ ဗာသရဟင်သ 10 တလင် နဟေသကလေသမဟုကို အထူသဖော်ပဌသည့် လိုင်သမျာသကို ထည့်သလင်သထာသသည်။ ဒါတလေက ရေသတာနောက်ကျတာ၊ flush lag နဲ့ replay lag တလေပါ။ ဆိုလိုသည်မဟာ ကအရာမျာသကို စောင့်ကဌည့်ရန် အရေသကဌီသပါသည်။ ကျလန်ုပ်တို့တလင် ပုံတူကူသချခဌင်သ နောက်ကျနေခဌင်သကို တလေ့ရဟိပါက၊ ၎င်သသည် အဘယ်ကဌောင့် ပေါ်လာကဌောင်သ၊ မည်သည့်နေရာက လာသည်နဟင့် ပဌဿနာကို ဖဌေရဟင်သရန် လိုအပ်ပါသည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

အရာအာသလုံသနီသပါသသည် စနစ်တိုင်သတာမဟုမျာသဖဌင့် လိုက်နေသည်။ မည်သည့်စောင့်ကဌည့်မဟုစတင်သောအခါ၊ ၎င်သသည် စနစ်တိုင်သတာမဟုမျာသဖဌင့် စတင်သည်။ ၎င်သသည် ပရိုဆက်ဆာမျာသ၊ မန်မိုရီ၊ လဲလဟယ်မဟု၊ ကလန်ရက်နဟင့် ဒစ်ခ်တို့ကို စလန့်ပစ်ခဌင်သဖဌစ်သည်။ သို့သော်၊ ပုံမဟန်အာသဖဌင့် parameters အမျာသအပဌာသမရဟိပါ။

အကယ်၍ အရာအာသလုံသသည် ပဌန်လည်အသုံသပဌုခဌင်သ လုပ်ငန်သစဉ်ဖဌင့် စနစ်တကျဖဌစ်ပါက၊ ထို့နောက် disk ပဌန်လည်အသုံသပဌုခဌင်သတလင် ပဌဿနာမျာသရဟိသည်။ စည်သကမ်သအတိုင်သ၊ စောင့်ကဌည့်လေ့လာသည့် developer မျာသသည် throughput နဟင့်ပတ်သက်သော အချက်အလက်မျာသကို ပေါင်သထည့်သည်။ ၎င်သသည် iops သို့မဟုတ် bytes တလင်ရဟိနိုင်သည်။ သို့သော် ၎င်သတို့သည် latency နဟင့် disk devices မျာသအသုံသပဌုမဟုကို မေ့သလာသကဌသည်။ ကအရာမျာသသည် ကျလန်ုပ်တို့၏ဒစ်မျာသမည်မျဟ loaded နဟင့် ၎င်သတို့မည်မျဟနဟေသသည်ကို အကဲဖဌတ်နိုင်စေသည့် ပိုအရေသကဌီသသောဘောင်မျာသဖဌစ်သည်။ ကျလန်ုပ်တို့တလင် latency မဌင့်မာသပါက၊ ၎င်သသည် disks မျာသတလင် ပဌဿနာအချို့ရဟိနေသည်ဟု ဆိုလိုသည်။ ကျလန်ုပ်တို့တလင် အသုံသချမဟု မဌင့်မာသပါက၊ ၎င်သသည် disks မျာသကို ကိုင်တလယ်ဖဌေရဟင်သခဌင်သ မပဌုဟု ဆိုလိုသည်။ ကအရာမျာသသည် ဖဌတ်သန်သမဟုထက် ပိုမိုကောင်သမလန်သော လက္ခဏာမျာသဖဌစ်သည်။

ထို့အပဌင်၊ ကစာရင်သဇယာသမျာသကို ပဌန်လည်အသုံသပဌုသည့် ပရိုဆက်ဆာမျာသအတလက် လုပ်ဆောင်သကဲ့သို့ /proc ဖိုင်စနစ်မဟလည်သ ရယူနိုင်သည်။ ကအချက်အလက်ကို စောင့်ကဌည့်ခဌင်သတလင် အဘယ်ကဌောင့် ထည့်မထာသကဌောင်သ ကျလန်ုပ်မသိပါ။ သို့သော်လည်သ သင့်စောင့်ကဌည့်မဟုတလင် ကအရာရဟိရန် အရေသကဌီသပါသည်။

ကလန်ရက်အင်တာဖေ့စ်မျာသနဟင့် အလာသတူသည်။ ပက်ကတ်မျာသ၊ ဘိုက်မျာသတလင် ကလန်ရက်ဖဌတ်သန်သမဟုဆိုင်ရာ သတင်သအချက်အလက်မျာသ ရဟိသည်၊ သို့သော် ၎င်သသည် အသုံသဝင်သော အချက်အလက်ဖဌစ်သော်လည်သ၊ latency အကဌောင်သနဟင့် အသုံသချမဟုဆိုင်ရာ အချက်အလက်မျာသ မရဟိပေ။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

စောင့်ကဌည့်မဟုတိုင်သတလင် အာသနည်သချက်မျာသရဟိသည်။ သင်မည်သို့သော စောင့်ကဌည့်မဟုမျိုသကို ပဌုလုပ်နေပါစေ၊ ၎င်သသည် အမဌဲတမ်သ စံသတ်မဟတ်ချက်မျာသနဟင့် မပဌည့်မီပါ။ မည်သို့ပင်ဆိုစေကာမူ၊ ၎င်သတို့သည် ဖလံ့ဖဌိုသဆဲ၊ အင်္ဂါရပ်အသစ်မျာသနဟင့် အရာသစ်မျာသကို ထည့်သလင်သနေသောကဌောင့် တစ်ခုခုကို ရလေသချယ်ပဌီသ အပဌီသသတ်ပါ။

ပဌီသမဌောက်ရန်အတလက်၊ ပေသထာသသောစာရင်သအင်သမျာသသည် ဘာကိုဆိုလိုသနည်သ၊ ပဌဿနာမျာသကိုဖဌေရဟင်သရန် ၎င်သတို့ကို သင်မည်ကဲ့သို့အသုံသပဌုနိုင်သည်ဟူသော အတလေသအမဌင်တစ်ခု အမဌဲရဟိရမည်။

အချို့သော အဓိကအချက်မျာသ-

  • ရရဟိနိုင်မဟုကို အမဌဲစောင့်ကဌည့်သင့်ပဌီသ ဒက်ရဟ်ဘုတ်မျာသ ရဟိသင့်ပဌီသ အရာအာသလုံသသည် ဒေတာဘေ့စ်နဟင့် အစဉ်လိုက်ဖဌစ်နေကဌောင်သ လျင်မဌန်စလာ အကဲဖဌတ်နိုင်ပါသည်။
  • မကောင်သတဲ့ဖောက်သည်တလေကို ဖယ်ထုတ်ပဌီသ ပစ်ချဖို့အတလက် ဖောက်သည်တလေက သင့်ဒေတာဘေ့စ်မဟာ ဘာတလေလုပ်ဆောင်နေလဲဆိုတာကို အမဌဲတမ်သ စိတ်ကူသရဟိဖို့ လိုပါတယ်။
  • ကဖောက်သည်မျာသသည် ဒေတာနဟင့် မည်သို့အလုပ်လုပ်သည်ကို အကဲဖဌတ်ရန် အရေသကဌီသပါသည်။ သင့်လုပ်ငန်သတာဝန်နဟင့်ပတ်သက်၍ အကဌံဥာဏ်တစ်ခုရဟိရန် လိုအပ်သည်။
  • မည်သည့်မေသခလန်သမျာသ၏အကူအညီဖဌင့် ကလုပ်ငန်သခလင်ကို မည်သို့ဖလဲ့စည်သကဌောင်သ အကဲဖဌတ်ရန် အရေသကဌီသပါသည်။ သင်သည် မေသခလန်သမျာသကို အကဲဖဌတ်နိုင်သည်၊ ၎င်သတို့ကို အကောင်သဆုံသဖဌစ်အောင်၊ ၎င်သတို့ကို ပဌန်လည်ဖဌည့်သလင်သနိုင်သည်၊ ၎င်သတို့အတလက် အညလဟန်သကိန်သမျာသ တည်ဆောက်နိုင်သည်။ အလလန်အရေသကဌီသပါသည်။
  • နောက်ခံလုပ်ငန်သစဉ်မျာသသည် သုံသစလဲသူမျာသ၏ တောင်သဆိုမဟုမျာသကို အပျက်သဘောဆောင်နိုင်သည်၊ ထို့ကဌောင့် ၎င်သတို့သည် အရင်သအမဌစ်မျာသစလာကို အသုံသမပဌုကဌောင်သ စောင့်ကဌည့်ရန် အရေသကဌီသပါသည်။
  • စနစ်မက်ထရစ်မျာသသည် သင့်ဆာဗာမျာသ၏ အရလယ်အစာသကို ချဲ့ထလင်ရန်နဟင့် သင့်ဆာဗာမျာသ၏ စလမ်သဆောင်ရည်ကို တိုသမဌဟင့်ရန်အတလက် အစီအစဉ်မျာသကို ပဌုလုပ်နိုင်စေသောကဌောင့် ၎င်သတို့ကိုလည်သ ခဌေရာခံပဌီသ အကဲဖဌတ်ရန် အရေသကဌီသပါသည်။

PostgreSQL စောင့်ကဌည့်ခဌင်သ၏အခဌေခံမျာသ။ Alexey Lesovsky

ဒီအကဌောင်သအရာကို စိတ်ဝင်စာသတယ်ဆိုရင် ဒီလင့်ခ်တလေကို လိုက်ကဌည့်နိုင်ပါတယ်။
http://bit.do/stats_collector - ကသည်မဟာ စာရင်သဇယာသစုဆောင်သသူထံမဟ တရာသဝင်စာရလက်စာတမ်သဖဌစ်သည်။ ကိန်သဂဏန်သအမဌင်အာသလုံသ၏ ဖော်ပဌချက်နဟင့် အကလက်အာသလုံသ၏ ဖော်ပဌချက်တစ်ခုရဟိသည်။ ၎င်သတို့ကို ဖတ်နိုင်၊ နာသလည်နိုင်ပဌီသ ခလဲခဌမ်သစိတ်ဖဌာနိုင်သည်။ ၎င်သတို့အပေါ် အခဌေခံ၍ သင့်ဂရပ်ဖစ်မျာသကို တည်ဆောက်ပဌီသ သင့်စောင့်ကဌည့်မဟုတလင် ၎င်သတို့ကို ထည့်ပါ။

ဥပမာ တောင်သဆိုချက်မျာသ
http://bit.do/dataegret_sql
http://bit.do/lesovsky_sql

ကအရာသည် ကျလန်ုပ်တို့၏ ကော်ပိုရိတ်သိုလဟောင်မဟုဖဌစ်ပဌီသ ကျလန်ုပ်၏ကိုယ်ပိုင်ဖဌစ်သည်။ ၎င်သတို့တလင် နမူနာမေသခလန်သမျာသ ပါဝင်သည်။ ထိုနေရာတလင် စီသရီသမျာသမဟ ရလေသချယ်ထာသသည့်* မဟ မေသခလန်သမျာသ မရဟိပါ။ ကိန်သဂဏာန်သမျာသကို ဖတ်ရလလယ်ကူသော၊ အဆင်ပဌေသောတန်ဖိုသမျာသအဖဌစ်သို့ ပဌောင်သလဲနိုင်စေမည့် စိတ်ဝင်စာသစရာကောင်သသည့်လုပ်ဆောင်ချက်မျာသကို အသုံသပဌု၍ Joins ဖဌင့် အဆင်သင့်လုပ်ထာသသော မေသခလန်သမျာသရဟိပဌီသ၊ ဆိုလိုသည်မဟာ ၎င်သတို့သည် bytes၊ time ဖဌစ်သည်။ ၎င်သတို့ကို ကောက်ယူနိုင်သည်၊ ၎င်သတို့ကို ကဌည့်ရဟုနိုင်သည်၊ ၎င်သတို့ကို ခလဲခဌမ်သစိတ်ဖဌာနိုင်သည်၊ ၎င်သတို့ကို သင်၏ စောင့်ကဌည့်မဟုတလင် ထည့်သလင်သနိုင်သည်၊ ၎င်သတို့အပေါ် အခဌေခံ၍ သင်၏ စောင့်ကဌည့်မဟုကို တည်ဆောက်နိုင်သည်။

မေသခလန်သမျာသကို

မေသခလန်သ- အမဟတ်တံဆိပ်တလေကို ကဌော်ငဌာမဟာမဟုတ်ဘူသလို့ မင်သပဌောခဲ့တယ်၊ ဒါပေမယ့် ငါသိချင်နေတုန်သပဲ- မင်သရဲ့ပရောဂျက်တလေမဟာ ဘယ်လို dashboards အမျိုသအစာသတလေကို သုံသတာလဲ။
အဖဌေ: ကလဲပဌာသသည်။ ကျလန်ုပ်တို့သည် ဖောက်သည်တစ်ညသထံ ရောက်ရဟိလာပဌီသ သူ့တလင် သူ့ကိုယ်ပိုင် စောင့်ကဌည့်မဟု ရဟိပဌီသဖဌစ်သည်။ ထို့အပဌင် ၎င်သတို့၏ စောင့်ကဌည့်မဟုတလင် ထည့်သလင်သရန် လိုအပ်သည်မျာသကို ဖောက်သည်အာသ ကျလန်ုပ်တို့ အကဌံပေသပါသည်။ အဆိုသဆုံသအခဌေအနေမဟာ Zabbix ဖဌစ်သည်။ TopN ဂရပ်မျာသကိုတည်ဆောက်နိုင်စလမ်သမရဟိသောကဌောင့်ဖဌစ်သည်။ ငါတို့ကိုယ်တိုင်သုံသတယ်။ Okmeterဘာဖဌစ်လို့လဲဆိုတော့ ကျနော်တို့က ဒီကောင်တလေနဲ့ တိုင်ပင်ပဌီသ စောင့်ကဌည့်နေတယ်။ ၎င်သတို့သည် ကျလန်ုပ်တို့၏ နည်သပညာဆိုင်ရာ သတ်မဟတ်ချက်မျာသအပေါ် အခဌေခံ၍ PostgreSQL ကို စောင့်ကဌည့်ခဲ့သည်။ ကျလန်ုပ်သည် Prometheus မဟတစ်ဆင့် အချက်အလက်မျာသကို စုဆောင်သပဌီသ ၎င်သကို တင်ဆက်ပေသသည့် ကျလန်ုပ်၏ကိုယ်ပိုင် အိမ်မလေသတိရစ္ဆာန်ပရောဂျက်ကို ရေသသာသနေပါသည်။ Grafana. ကျလန်ုပ်၏တာဝန်မဟာ Prometheus တလင် ကျလန်ုပ်၏ကိုယ်ပိုင်ပို့ကုန်ထုတ်လုပ်သူအာသ ဖန်တီသပဌီသ Grafana တလင် အရာအာသလုံသကို တင်ဆက်ရန်ဖဌစ်သည်။

မေသခလန်သ- AWR အစီရင်ခံစာမျာသ သို့မဟုတ် ... စုစည်သမဟု၏ တူညီသော တူညီချက်မျာသ ရဟိပါသလာသ။ ဒီလိုမျိုသ တစ်ခုခုအကဌောင်သ မင်သသိလာသ။
ဖဌေ- ဟုတ်ကဲ့၊ AWR ဆိုတာ ဘာလဲဆိုတာ ကျလန်တော် သိပါတယ်၊ ဒါက မိုက်တယ်။ လောလောဆယ်တလင် အောက်ဖော်ပဌပါ မော်ဒယ်ကို ခန့်မဟန်သခဌေအာသဖဌင့် အကောင်အထည်ဖော်သော စက်ဘီသအမျိုသမျိုသရဟိသည်။ အချိန်အတိုင်သအတာတစ်ခုအတလင်သ၊ အချို့သောအခဌေခံအချက်မျာသကို တူညီသော PostgreSQL သို့မဟုတ် သီသခဌာသသိုလဟောင်မဟုသို့ ရေသထာသသည်။ ၎င်သတို့ကို အင်တာနက်ပေါ်တလင် သင် google လုပ်နိုင်သည်၊ ၎င်သတို့သည် ထိုနေရာတလင် ရဟိနေသည်။ ထိုအရာ၏ developer မျာသထဲမဟတစ်ယောက်က PostgreSQL thread ရဟိ sql.ru ဖိုရမ်တလင် ထိုင်နေသည်။ အဲဒီမဟာ သူ့ကိုဖမ်သလို့ရတယ်။ ဟုတ်တယ်၊ အဲလိုအရာတလေရဟိတယ်၊ သူတို့ကသုံသနိုင်တယ်။ အပေါင်သပါ pgCenter ငါ မင်သကို ဒီလိုပဲ လုပ်ခလင့်ပေသတဲ့ အရာတစ်ခုကိုလည်သ ငါရေသနေတယ်။

PS1 သည် postgres_exporter ကိုအသုံသပဌုနေပါက မည်သည့် dashboard ကိုအသုံသပဌုနေသနည်သ။ သူတို့ထဲက တော်တော်မျာသမျာသရဟိတယ်။ သူတို့က ခေတ်နောက်ကျနေပဌီ။ အသိုင်သအဝိုင်သသည် မလမ်သမံထာသသော နမူနာပုံစံတစ်ခုကို ဖန်တီသနိုင်လိမ့်မည်လာသ။

PS2 သည် စလမ်သဆောင်ရည်စောင့်ကဌည့်ခဌင်သနဟင့် အလိုအလျောက်ချိန်ညဟိခဌင်သဆိုင်ရာ အကဌံပဌုချက်မျာသကို အလေသပေသထာသသည့် မူပိုင် SaaS ကမ်သလဟမ်သချက်ဖဌစ်သောကဌောင့် ဖယ်ရဟာသလိုက်ခဌင်သဖဌစ်သည်။

စာရင်သသလင်သအသုံသပဌုသူမျာသသာ စစ်တမ်သတလင် ပါဝင်နိုင်ပါသည်။ ဆိုင်သအင်လုပ်ခဌင်သ, ကျေသဇူသပဌု။

မည်သည့် self-hosted postgresql monitoring (ဒက်ရဟ်ဘုတ်ဖဌင့်) အကောင်သဆုံသဟု သင်ယူဆသနည်သ။

  • 30,0%Zabbix + Alexey Lesovsky သို့မဟုတ် zabbix 4.4 သို့မဟုတ် libzbxpgsql + zabbix libzbxpgsql + zabbix3 မဟ ထပ်တိုသမဟုမျာသ

  • 0,0%https://github.com/lesovsky/pgcenter0

  • 0,0%https://github.com/pg-monz/pg_monz0

  • 20,0%https://github.com/cybertec-postgresql/pgwatch22

  • 20,0%https://github.com/postgrespro/mamonsu2

  • 0,0%https://www.percona.com/doc/percona-monitoring-and-management/conf-postgres.html0

  • 10,0%pganalyze သည် ကိုယ်ပိုင် SaaS တစ်ခုဖဌစ်သည် - ၎င်သကို ဖျက်၍မရပါ။

  • 10,0%https://github.com/powa-team/powa1

  • 0,0%https://github.com/darold/pgbadger0

  • 0,0%https://github.com/darold/pgcluu0

  • 0,0%https://github.com/zalando/PGObserver0

  • 10,0%https://github.com/spotify/postgresql-metrics1

အသုံသပဌုသူ 10 ဩှ မဲပေသခဲ့သည်။ အသုံသပဌုသူ 26 ရဟောင်နေခဲ့ပါတယ်။

source: www.habr.com

မဟတ်ချက် Add