
فلسفي پېژندنه
لکه څنګه چې تاسو پوهیږئ، د ستونزو حل کولو لپاره یوازې دوه لارې شتون لري:
- د تحلیل میتود یا د کسر طریقه، یا له عمومي څخه ځانګړي ته.
- د ترکیب طریقه یا د داخلولو طریقه، یا له ځانګړي څخه عمومي ته.
د "ډیټابیس فعالیت ښه کولو" ستونزې حل کولو لپاره ، دا ممکن داسې ښکاري.
شننه - موږ ستونزه په جلا جلا برخو کې تحلیل کوو او د حل کولو سره، موږ هڅه کوو چې د ډیټابیس فعالیت په ټولیزه توګه ښه کړو.
په عمل کې، تحلیل داسې ښکاري:
- یوه ستونزه رامنځ ته کیږي (د فعالیت پیښه)
- د ډیټابیس د حالت په اړه د احصایوي معلوماتو راټولول
- د خنډونو په لټه کې
- موږ د خنډونو څخه ستونزې حل کوو
د ډیټابیس خنډونه - زیربنا (CPU، حافظه، ډیسک، شبکه، OS)، ترتیبات (postgresql.conf)، پوښتنې:
زیربنا: د انجنیر لپاره د نفوذ او بدلون امکانات تقریبا صفر دي.
د ډیټابیس ترتیبات: د بدلونونو امکانات د تیرې قضیې په پرتله یو څه ډیر دي، مګر د یوې قاعدې په توګه دوی لاهم خورا ستونزمن دي، په ځانګړې توګه په ورېځو کې.
غوښتنې ډیټابیس ته: یوازې د تمرین لپاره خونه.
ترکیب - موږ د انفرادي برخو فعالیت ښه کوو، تمه لرو چې د ډیټابیس فعالیت به د پایلې په توګه ښه شي.
شعري پیژندنه یا ولې دا ټول اړین دي
که چیرې د ډیټابیس فعالیت ونه څارل شي د فعالیت پیښو حل کولو پروسه څه ده:
پیرودونکي - "زموږ سره هرڅه خراب دي، ډیر وخت نیسي، زموږ لپاره یو څه ښه کړئ"
انجنیر - "دا څومره خراب دی؟"
پیرودونکي - "دا اوس څنګه ده (یو ساعت دمخه، پرون، وروستی ځل دا و)، ورو ورو"
انجنیر - "کله ښه وه؟"
پیرودونکي - "یوه اونۍ (دوه اونۍ) دمخه دا خراب نه و. "(دا بختور دی)
پیرودونکي - "زه په یاد نه یم کله چې دا ښه و، مګر اوس خراب دی" (منظم ځواب)
پایله یو کلاسیک عکس دی:

ملامت څوک دی او څه وکړي؟
د پوښتنې لومړۍ برخه د ځواب لپاره ترټولو اسانه ده - د DBA انجینر تل ملامت دی.
دویمه برخه هم د ځواب ویلو لپاره خورا ستونزمنه نه ده - تاسو اړتیا لرئ د ډیټابیس فعالیت نظارت سیسټم پلي کړئ.
لومړۍ پوښتنه راپورته کیږي - څه څارنه وکړي؟
لاره 1. موږ به هر څه وڅیړو

د CPU بار، د ډیسک لوستلو / لیکلو عملیاتو شمیر، د تخصیص شوي حافظې اندازه، او د مختلف کاونټرونو یو بل میګاټون چې د څارنې ډیر یا لږ کاري سیسټم چمتو کولی شي.
پایله د ګرافونو یوه ډله ده، لنډیز جدولونه، او دوامداره بریښنالیک خبرتیاوې او 100٪ بوخت انجینر د ورته ټکټونو یوه ډله حل کوي، په هرصورت، د یوې قاعدې په توګه، د معیاري کلمو سره - "موقتي مسله. هیڅ اقدام ته اړتیا نشته.» مګر هرڅوک بوخت دی، او تل د پیرودونکي ښودلو لپاره یو څه شتون لري - کار په بشپړ ډول روان دی.
لاره 2. یوازې هغه څه وڅارئ چې اړتیا ورته وي، او هغه څه چې اړتیا نلري نظارت ته اړتیا نلري
تاسو کولی شئ په یو څه توپیر سره څارنه وکړئ، یوازې ادارې او پیښې:
- کوم چې د DBA انجینر اغیزه کولی شي
- د کوم لپاره چې د عمل الګوریتم شتون لري کله چې پیښه واقع کیږي یا یو وجود بدلیږي.
د دې انګیرنې او یادولو پر بنسټ "فلسفي پېژندنه"د منظم تکرار څخه مخنیوي لپاره"شعري پیژندنه یا ولې دا ټول اړین دي"دا به مشوره وي چې د اصلاح او تحلیل لپاره د انفرادي پوښتنو فعالیت وڅارئ، کوم چې په نهایت کې د ټول ډیټابیس د ښه فعالیت لامل کیږي.
مګر د یوې درنې پوښتنې د ښه کولو لپاره چې د ډیټابیس عمومي فعالیت اغیزه کوي ، تاسو باید لومړی دا ومومئ.
نو، دوه متقابلې پوښتنې راپورته کیږي:
- کومه غوښتنه سخته ګڼل کیږي
- د سختو پوښتنو لټون څنګه
په ښکاره ډول، یوه درنه پوښتنه یوه پوښتنه ده چې د پایلې ترلاسه کولو لپاره د OS ډیری سرچینې کاروي.
راځئ چې دویمې پوښتنې ته لاړ شو - څنګه لټون کول او بیا د درنو پوښتنو څارنه کول؟
PostgreSQL د کومې پوښتنې څارنې وړتیاوې لري؟
د اوریکل په پرتله، لږ امکانات شتون لري، مګر بیا هم یو څه ترسره کیدی شي.

PG_STAT_STATEMENTS
په PostgreSQL کې د درنو پوښتنو لټون او څارلو لپاره، د معیاري توسیع pg_stat_statements موخه ده.
د تمدید نصبولو وروسته، د ورته نوم لید د هدف ډیټابیس کې ښکاري، کوم چې باید د څارنې موخو لپاره وکارول شي.
د څارنې سیسټم جوړولو لپاره د pg_stat_statements کالمونه هدف کړئ:
- پوښتنه داخلي هش کوډ د آپریټر پارس ونې څخه محاسبه شوی
- max_time په یوه بیان باندې لګول شوي اعظمي وخت په ملی ثانیو کې
په دې دوو کالمونو کې د احصایو په راټولولو او کارولو سره، تاسو کولی شئ د څارنې سیسټم جوړ کړئ.
څنګه pg_stat_statements د PostgreSQL فعالیت څارلو لپاره کارول کیږي

د پوښتنو فعالیت څارلو لپاره کارول:
د هدف ډیټابیس اړخ کې - pg_stat_statements لید
له څنګ څخه سرور او د څارنې ډیټابیسونه - د باش سکریپټونو او خدماتو جدولونو سیټ.
مرحله 1 - د احصایوي معلوماتو راټولول
د کرون څارنې کوربه کې، یو سکریپټ په منظمه توګه پیل کیږي چې د pg_stat_statements لید مینځپانګې د هدف ډیټابیس څخه د څارنې ډیټابیس کې pg_stat_history میز ته کاپي کوي.
دا د انفرادي پوښتنو اعدامونو تاریخ رامینځته کوي چې د فعالیت راپورونو رامینځته کولو او میټریکونو تنظیم کولو لپاره کارول کیدی شي.
مرحله 2 - د فعالیت میټریک تنظیم کول
د راټولو شویو معلوماتو پراساس، موږ هغه پوښتنې غوره کوو چې اجرا کول یې د پیرودونکي (عریضې) لپاره خورا مهم / مهم دي. د پیرودونکي سره په موافقه کې، موږ د queryid او max_time ساحو په کارولو سره د فعالیت میټریک ارزښتونه ټاکو.
پایله - د فعالیت نظارت پیل
- د څارنې سکریپټ، کله چې چلیږي، د هدف ډیټابیس کې د pg_stat_statements لید څخه ارزښت سره د میټریک د max_time ارزښت پرتله کولو سره د تنظیم شوي فعالیت میټریک چیک کوي.
- که د هدف ډیټابیس کې ارزښت د میټریک ارزښت څخه ډیر وي ، نو خبرداری رامینځته کیږي (د ټکټ سیسټم کې پیښه)
اضافي اختیار 1
د پلان تاریخ پوښتنه
د دې لپاره چې وروسته د فعالیت پیښو حل کولو کې مرسته وکړي، دا یو ښه نظر دی چې د پوښتنو اجرا کولو پالنونو بدلولو تاریخ ولرئ.
د log_query خدمت جدول د تاریخ ذخیره کولو لپاره کارول کیږي. جدول ډک شوی کله چې د بار شوي PostgreSQL لاګ فایل تحلیل کړئ. لدې چې د لاګ فایل ، د pg_stat_statements لید برعکس ، د اجرایی پیرامیټرو ارزښتونو سره بشپړ متن لري ، او نه نورمال شوي متن ، نو دا ممکنه ده چې نه یوازې د غوښتنو وخت او موده لاګ کړئ ، بلکه په اوسني وخت کې د اجرا کولو پلانونه هم ذخیره کړئ. وخت
اضافي اختیار 2
د فعالیت د ښه والي دوامداره پروسه
په عموم کې د انفرادي پوښتنو څارنه د دې لپاره نده چې په دوامداره توګه د ډیټابیس فعالیت ښه کولو ستونزې حل کړي، ځکه چې دا یوازې د انفرادي پوښتنو لپاره د فعالیت ستونزې څاري او حل کوي. په هرصورت، تاسو کولی شئ طریقه پراخه کړئ او د ټولو ډیټابیسونو لپاره د څارنې پوښتنې تنظیم کړئ.
د دې کولو لپاره، تاسو اړتیا لرئ چې د فعالیت اضافي میترونه داخل کړئ:
- په وروستیو ورځو کې
- د اساسی دورې لپاره
سکریپټ د هدف ډیټابیس کې د pg_stat_statements لید څخه پوښتنې غوره کوي او د max_time ارزښت د اوسط max_time ارزښت سره پرتله کوي، په لومړي حالت کې د وروستیو ورځو لپاره یا د ټاکل شوي وخت مودې (بیس لاین) لپاره، په دویمه قضیه کې.
په دې توګه، د هرې غوښتنې لپاره د فعالیت د تخریب په صورت کې، یو خبرداری به په اتوماتيک ډول تولید شي، پرته له دې چې د راپورونو لاسي تحلیل.
ترکیب له دې سره څه تړاو لري؟
په بیان شوي طریقه کې، لکه څنګه چې د ترکیب میتود وړاندیز کوي، د سیسټم د انفرادي برخو په ښه کولو سره، موږ په ټولیز ډول سیسټم ته وده ورکوو.
- پوښتنه د ډیټابیس لخوا اجرا شوې - لنډیز
- تعدیل شوی غوښتنه - ضد
- د سیسټم حالت بدلول - ترکیب

د سیسټم پرمختګ
- د pg_stat_activity سیسټم لید لپاره تاریخ اضافه کولو سره د راټول شوي احصایو غزول
- په پوښتنو کې د برخه اخیستونکو انفرادي میزونو احصایو لپاره د تاریخ اضافه کولو سره راټول شوي احصایې پراخه کول
- د AWS بادل څارنې سیسټم سره یوځای کول
- او بیا هم، تاسو کولی شئ د یو څه سره راشي ...
سرچینه: www.habr.com
