PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

Data Egret “Fundamentals of PostgreSQL අධීක්‍ෂණය” වෙතින් Alexey Lesovsky විසින් කරන ලද වාර්තාවේ පිටපත කියවීමට මම ඔබට යෝජනා කරමි.

මෙම වාර්තාවේ, ඇලෙක්සි ලෙසොව්ස්කි විසින් පශ්චාත්-ග්‍රහස් සංඛ්‍යාලේඛනවල ප්‍රධාන කරුණු ගැන කතා කරනු ඇත, ඔවුන් අදහස් කරන්නේ කුමක්ද සහ ඒවා නිරීක්ෂණය කිරීමේදී ඔවුන් සිටිය යුත්තේ ඇයි; නිරීක්ෂණයේ තිබිය යුතු ප්‍රස්ථාර මොනවාද, ඒවා එකතු කරන්නේ කෙසේද සහ ඒවා අර්ථ නිරූපණය කරන්නේ කෙසේද යන්න පිළිබඳව. Postgres දෝශ නිරාකරණය ගැන උනන්දුවක් දක්වන දත්ත සමුදා පරිපාලකයින්ට, පද්ධති පරිපාලකයින්ට සහ සංවර්ධකයින්ට වාර්තාව ප්‍රයෝජනවත් වනු ඇත.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

මගේ නම Alexey Lesovsky, මම Data Egret සමාගම නියෝජනය කරනවා.

මා ගැන වචන කිහිපයක්. මම පද්ධති පරිපාලකයෙකු ලෙස බොහෝ කලකට පෙර ආරම්භ කළෙමි.

මම විවිධ ලිනක්ස් පද්ධති පාලනය කළෙමි, ලිනක්ස් සම්බන්ධ විවිධ දේවල් මත වැඩ කළෙමි, එනම් අථත්‍යකරණය, අධීක්ෂණය, ප්‍රොක්සි සමඟ වැඩ කළෙමි, නමුත් යම් අවස්ථාවක දී මම දත්ත සමුදායන්, PostgreSQL සමඟ වැඩිපුර වැඩ කිරීමට පටන් ගතිමි. මම ඔහුට ඇත්තටම කැමති වුණා. යම් අවස්ථාවක දී මම මගේ වැඩ කරන කාලයෙන් වැඩි කාලයක් PostgreSQL මත වැඩ කිරීමට පටන් ගතිමි. ඉතින් ටිකෙන් ටික මම PostgreSQL DBA කෙනෙක් වුණා.

මගේ වෘත්තීය ජීවිතය පුරාවටම, මම නිතරම සංඛ්යාලේඛන, නිරීක්ෂණ සහ ටෙලිමෙට්රි යන මාතෘකා ගැන උනන්දු වී සිටිමි. මම පද්ධති පරිපාලකයෙකු වූ විට, මම Zabbix සමඟ ඉතා සමීපව කටයුතු කළෙමි. ඒ වගේම මම වගේ පොඩි scripts සෙට් එකක් ලිව්වා zabbix-දිගුව. ඔහුගේ කාලයේ ඔහු තරමක් ජනප්‍රිය විය. ලිනක්ස් පමණක් නොව විවිධ සංරචක ද ඉතා වෙනස් වැදගත් දේ නිරීක්ෂණය කිරීමට එහිදී හැකි විය.

දැන් මම PostgreSQL එකේ වැඩ කරනවා. PostgreSQL සංඛ්‍යාලේඛන සමඟ වැඩ කිරීමට ඔබට ඉඩ සලසන තවත් දෙයක් මම දැනටමත් ලියමි. එය හැඳින්වේ pgCenter (හබ්රේ පිළිබඳ ලිපිය - ස්නායු හා ආතතියකින් තොරව පශ්චාත්-ග්රෑෂ් සංඛ්යා ලේඛන).

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

කුඩා හඳුන්වාදීමේ සටහනක්. අපගේ ගනුදෙනුකරුවන්ට, අපගේ ගනුදෙනුකරුවන්ට ඇති තත්වයන් මොනවාද? දත්ත ගබඩාවට සම්බන්ධ යම් ආකාරයක අනතුරක් තිබේ. දත්ත සමුදාය දැනටමත් ප්‍රතිසාධනය කර ඇති විට, දෙපාර්තමේන්තු ප්‍රධානියා හෝ සංවර්ධන ප්‍රධානියා පැමිණ මෙසේ පවසයි: “මිත්‍රවරුනි, අපි දත්ත සමුදාය නිරීක්ෂණය කළ යුතුයි, මන්ද නරක දෙයක් සිදු වූ අතර අනාගතයේදී මෙය සිදුවීම වළක්වා ගත යුතුය.” ඔබගේ දත්ත සමුදාය - PostgreSQL, MySQL හෝ තවත් සමහරක් නිරීක්ෂණය කළ හැකි වන පරිදි අධීක්ෂණ පද්ධතියක් තෝරාගැනීමේ හෝ පවතින අධීක්ෂණ පද්ධතියක් අනුවර්තනය කිරීමේ සිත්ගන්නා ක්‍රියාවලිය මෙතැනින් ආරම්භ වේ. සගයන් යෝජනා කිරීමට පටන් ගනී: “එවැනි සහ එවැනි දත්ත ගබඩාවක් ඇති බව මට ආරංචි විය. අපි එය භාවිතා කරමු." සගයන් එකිනෙකා සමඟ තර්ක කිරීමට පටන් ගනී. අවසානයේදී, අපි යම් ආකාරයක දත්ත සමුදායක් තෝරා ගන්නා බව පෙනේ, නමුත් PostgreSQL අධීක්‍ෂණය එහි ඉතා දුර්වල ලෙස ඉදිරිපත් කර ඇති අතර අපට සෑම විටම යමක් එකතු කිරීමට සිදුවේ. GitHub වෙතින් ගබඩා කිහිපයක් ගන්න, ඒවා ක්ලෝන කරන්න, ස්ක්‍රිප්ට් අනුවර්තනය කරන්න, සහ කෙසේ හෝ ඒවා අභිරුචිකරණය කරන්න. අවසානයේ එය යම් ආකාරයක අතින් වැඩ කිරීමකින් අවසන් වේ.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

එමනිසා, මෙම කතාවේදී මම PostgreSQL සඳහා පමණක් නොව, දත්ත සමුදාය සඳහාද අධීක්ෂණය තෝරා ගන්නේ කෙසේද යන්න පිළිබඳ යම් දැනුමක් ලබා දීමට උත්සාහ කරමි. ඉදිරියේදී ඇතිවිය හැකි හදිසි අවස්ථා ඉක්මනින් වළක්වා ගැනීම සඳහා, ඔබේ දත්ත සමුදාය ප්‍රතිලාභ සහිතව නිරීක්ෂණය කළ හැකි වන පරිදි, එයින් යම් ප්‍රතිලාභයක් ලබා ගැනීම සඳහා ඔබේ අධීක්ෂණය සම්පූර්ණ කිරීමට ඔබට ඉඩ සලසන දැනුම ඔබට ලබා දෙන්න.

තවද මෙම වාර්තාවේ ඇති අදහස් DBMS හෝ noSQL හෝ වේවා ඕනෑම දත්ත සමුදායකට සෘජුවම අනුවර්තනය කළ හැක. එමනිසා, PostgreSQL පමණක් නොව, PostgreSQL හි මෙය කරන්නේ කෙසේද යන්න පිළිබඳ බොහෝ වට්ටෝරු තිබේ. විමසුම් සඳහා උදාහරණ, නිරීක්ෂණ සඳහා PostgreSQL සතුව ඇති ආයතනවල උදාහරණ ඇත. ඒවගේම ඔයාලගේ DBMS වලට ඒවා මොනිටරින් දාන්න පුලුවන් දේවල්ම තියෙනවා නම්, ඔයාටත් ඒවා අනුවර්තනය කරන්න, එකතු කරන්න, ඒක හොඳයි.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කිමම වාර්තාවේ නොසිටිමි
ප්‍රමිතික බෙදා හැරීම සහ ගබඩා කරන්නේ කෙසේද යන්න ගැන කතා කරන්න. දත්ත පසු සැකසීම සහ පරිශීලකයාට ඉදිරිපත් කිරීම ගැන මම කිසිවක් නොකියමි. තවද මම අනතුරු ඇඟවීම ගැන කිසිවක් නොකියමි.
නමුත් කතාව ඉදිරියට යන විට, පවතින නිරීක්ෂණවල විවිධ තිරපිටපත් පෙන්වමින් මම ඒවා කෙසේ හෝ විවේචනය කරමි. කෙසේ වෙතත්, මෙම නිෂ්පාදන සඳහා වෙළඳ දැන්වීම් හෝ ප්‍රචාරණ විරෝධී නිර්මාණය නොකිරීමට මම වෙළඳ නාම නම් නොකිරීමට උත්සාහ කරමි. එමනිසා, සියලු අහඹු සිදුවීම් අහඹු වන අතර ඔබේ පරිකල්පනයට ඉතිරි වේ.
PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි
පළමුව, නිරීක්ෂණ යනු කුමක්දැයි සොයා බලමු. නිරීක්ෂණය කිරීම ඉතා වැදගත් දෙයකි. මේක හැමෝටම තේරෙනවා. නමුත් ඒ සමගම, අධීක්‍ෂණය ව්‍යාපාරික නිෂ්පාදනයකට සම්බන්ධ නොවන අතර සමාගමේ ලාභයට සෘජුවම බලපාන්නේ නැත, එබැවින් සෑම විටම අවශේෂ පදනමක් මත අධීක්ෂණය සඳහා කාලය වෙන් කරනු ලැබේ. අපට කාලය තිබේ නම්, අපි අධීක්ෂණය කරන්නෙමු; අපට කාලය නොමැති නම්, හරි, අපි එය පසුබෑමේ තබා යම් දිනක අපි මෙම කාර්යයන් වෙත ආපසු යමු.

එබැවින්, අපගේ පරිචයෙන්, අපි සේවාදායකයින් වෙත පැමිණෙන විට, අධීක්ෂණය බොහෝ විට අසම්පූර්ණ වන අතර දත්ත සමුදාය සමඟ වඩා හොඳ කාර්යයක් කිරීමට අපට උපකාර වන රසවත් දේවල් නොමැත. එබැවින් අධීක්ෂණය සෑම විටම සම්පූර්ණ කළ යුතුය.

දත්ත සමුදායන් යනු එවැනි සංකීර්ණ දේවල් වන අතර ඒවා ද නිරීක්ෂණය කළ යුතුය, මන්ද දත්ත සමුදායන් තොරතුරු ගබඩාවක් වේ. සමාගම සඳහා තොරතුරු ඉතා වැදගත් වේ; එය කිසිඳු ආකාරයකින් නැති කර ගත නොහැක. නමුත් ඒ සමගම දත්ත සමුදායන් ඉතා සංකීර්ණ මෘදුකාංගයකි. ඒවා සංරචක විශාල සංඛ්යාවක් සමන්විත වේ. තවද මෙම සංරචක බොහොමයක් නිරීක්ෂණය කළ යුතුය.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කිඅපි විශේෂයෙන් PostgreSQL ගැන කතා කරන්නේ නම්, එය විශාල සංරචක ගණනකින් සමන්විත යෝජනා ක්‍රමයක ස්වරූපයෙන් නිරූපණය කළ හැකිය. මෙම සංරචක එකිනෙකා සමඟ අන්තර් ක්රියා කරයි. ඒ අතරම, PostgreSQL සතුව ඊනියා සංඛ්‍යාලේඛන එකතු කිරීමේ උප පද්ධතියක් ඇත, එමඟින් ඔබට මෙම උප පද්ධතිවල ක්‍රියාකාරිත්වය පිළිබඳ සංඛ්‍යාලේඛන එකතු කිරීමට සහ පරිපාලකයාට හෝ පරිශීලකයාට මෙම සංඛ්‍යාලේඛන බැලීමට හැකි වන පරිදි යම් ආකාරයක අතුරු මුහුණතක් ලබා දීමට ඉඩ සලසයි.

මෙම සංඛ්‍යාලේඛන ඉදිරිපත් කරනු ලබන්නේ යම් ශ්‍රිත සහ දර්ශන සමූහයක ස්වරූපයෙන් ය. ඒවා වගු ලෙසද හැඳින්විය හැක. එනම්, සාමාන්‍ය psql සේවාලාභියෙකු භාවිතා කරමින්, ඔබට දත්ත සමුදායට සම්බන්ධ වීමට, මෙම කාර්යයන් සහ දර්ශන මත තේරීමක් කිරීමට සහ PostgreSQL උප පද්ධතිවල ක්‍රියාකාරිත්වය පිළිබඳ නිශ්චිත සංඛ්‍යා කිහිපයක් ලබා ගත හැකිය.

ඔබට මෙම අංක ඔබේ ප්‍රියතම අධීක්ෂණ පද්ධතියට එක් කිරීමට, ප්‍රස්ථාර ඇඳීමට, කාර්යයන් එක් කිරීමට සහ දිගුකාලීනව විශ්ලේෂණ ලබා ගැනීමට හැකිය.

නමුත් මෙම වාර්තාවෙන් මම මෙම සියලු කාර්යයන් සම්පූර්ණයෙන් ආවරණය නොකරමි, මන්ද එයට මුළු දවසම ගත විය හැකිය. මම වචනාර්ථයෙන් කරුණු දෙකක්, තුනක් හෝ හතරක් ආමන්ත්‍රණය කරන අතර ඒවා අධීක්ෂණය වඩා හොඳ කිරීමට උපකාරී වන ආකාරය ඔබට කියමි.
PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි
අපි දත්ත සමුදා අධීක්ෂණය ගැන කතා කරන්නේ නම්, නිරීක්ෂණය කළ යුත්තේ කුමක්ද? පළමුවෙන්ම, අපි ලබා ගත හැකි බව නිරීක්ෂණය කළ යුතුය, මන්ද දත්ත සමුදාය සේවාදායකයින්ට දත්ත වෙත ප්‍රවේශය සපයන සේවාවක් වන අතර අප ලබා ගත හැකි බව නිරීක්ෂණය කළ යුතු අතර එහි ගුණාත්මක හා ප්‍රමාණාත්මක ලක්ෂණ කිහිපයක් ද ලබා දිය යුතුය.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

අපගේ දත්ත සමුදායට සම්බන්ධ වන සේවාලාභීන් නිරීක්ෂණය කිරීමටද අපට අවශ්‍ය වේ, මන්ද ඔවුන් සාමාන්‍ය සේවාදායකයින් සහ දත්ත සමුදායට හානි කළ හැකි හානිකර සේවාදායකයින් විය හැකි බැවිනි. ඔවුන් ද නිරීක්ෂණය කළ යුතු අතර ඔවුන්ගේ ක්‍රියාකාරකම් නිරීක්ෂණය කළ යුතුය.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

සේවාදායකයින් දත්ත සමුදායට සම්බන්ධ වූ විට, ඔවුන් අපගේ දත්ත සමඟ වැඩ කිරීමට පටන් ගන්නා බව පැහැදිලිය, එබැවින් සේවාදායකයින් දත්ත සමඟ ක්‍රියා කරන ආකාරය අපි නිරීක්ෂණය කළ යුතුය: කුමන වගු සමඟද, සහ අඩු ප්‍රමාණයකට, කුමන දර්ශක සමඟද. එනම්, අපගේ සේවාදායකයින් විසින් නිර්මාණය කරන ලද කාර්ය භාරය අප විසින් ඇගයීමට ලක් කළ යුතුය.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

නමුත් වැඩ බර ද, ඇත්ත වශයෙන්ම, ඉල්ලීම් වලින් සමන්විත වේ. යෙදුම් දත්ත සමුදායට සම්බන්ධ වේ, විමසුම් භාවිතයෙන් දත්ත ප්‍රවේශ කරයි, එබැවින් දත්ත සමුදායේ අප සතුව ඇති විමසුම් මොනවාදැයි තක්සේරු කිරීම, ඒවායේ ප්‍රමාණවත් බව නිරීක්ෂණය කිරීම, ඒවා වංක ලෙස ලියා නොමැති බව, සමහර විකල්ප නැවත ලිවිය යුතු අතර ඒවා වේගයෙන් ක්‍රියාත්මක වන පරිදි සකස් කළ යුතුය. සහ වඩා හොඳ කාර්ය සාධනයක් සමඟ.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

තවද අපි දත්ත සමුදායක් ගැන කතා කරන බැවින්, දත්ත සමුදාය සෑම විටම පසුබිම් ක්රියාවලීන් වේ. පසුබිම් ක්‍රියාවලි හොඳ මට්ටමක දත්ත සමුදා ක්‍රියාකාරිත්වය පවත්වා ගැනීමට උපකාරී වේ, එබැවින් ඔවුන්ට ක්‍රියාත්මක වීමට යම් සම්පත් ප්‍රමාණයක් අවශ්‍ය වේ. ඒ අතරම, ඔවුන්ට සේවාදායක ඉල්ලීම් සම්පත් සමඟ අතිච්ඡාදනය විය හැක, එබැවින් කෑදර පසුබිම් ක්‍රියාවලීන් සේවාදායක ඉල්ලීම්වල ක්‍රියාකාරිත්වයට සෘජුවම බලපායි. එබැවින්, පසුබිම් ක්රියාවලීන් අනුව විකෘති කිරීම් සිදු නොවන පරිදි ඒවා ද නිරීක්ෂණය කිරීම සහ නිරීක්ෂණය කිරීම අවශ්ය වේ.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

දත්ත සමුදා අධීක්‍ෂණය සම්බන්ධයෙන් මේ සියල්ල පද්ධති මෙට්‍රික් තුළ පවතී. නමුත් අපගේ යටිතල පහසුකම් බොහොමයක් වලාකුළු වෙත ගමන් කරන බව සලකන විට, තනි ධාරකයෙකුගේ පද්ධති ප්‍රමිතික සෑම විටම පසුබිමට මැකී යයි. නමුත් දත්ත සමුදායන් තුළ ඒවා තවමත් අදාළ වන අතර, ඇත්ත වශයෙන්ම, පද්ධති ප්රමිතික නිරීක්ෂණය කිරීම ද අවශ්ය වේ.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

පද්ධති ප්‍රමිතික සමඟ සෑම දෙයක්ම අඩු හෝ වැඩි වශයෙන් හොඳයි, සියලුම නවීන අධීක්ෂණ පද්ධති දැනටමත් මෙම ප්‍රමිතික සඳහා සහය දක්වයි, නමුත් සාමාන්‍යයෙන්, සමහර සංරචක තවමත් ප්‍රමාණවත් නොවන අතර සමහර දේවල් එකතු කිරීමට අවශ්‍ය වේ. මම ඒවා ද ස්පර්ශ කරමි, ඒවා ගැන විනිවිදක කිහිපයක් ඇත.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි
සැලැස්මේ පළමු කරුණ වන්නේ ප්රවේශ්යතාවයි. ප්‍රවේශ්‍යතාව යනු කුමක්ද? මගේ අවබෝධයේ ඇති බව යනු සේවා සම්බන්ධතා සඳහා පදනමේ ඇති හැකියාවයි, එනම් පදනම ඉහළ නංවා ඇත, එය සේවාවක් ලෙස ගනුදෙනුකරුවන්ගෙන් සම්බන්ධතා පිළිගනී. තවද මෙම ප්රවේශය ඇතැම් ලක්ෂණ මගින් තක්සේරු කළ හැක. උපකරණ පුවරු මත මෙම ලක්ෂණ පෙන්වීම ඉතා පහසු වේ.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි
Dashboards කියන්නේ මොනවද කියලා හැමෝම දන්නවා. අවශ්‍ය තොරතුරු සාරාංශ කර ඇති තිරය දෙස ඔබ එක් බැල්මක් ගත් විට මෙයයි. දත්ත සමුදායේ ගැටලුවක් තිබේද නැද්ද යන්න ඔබට වහාම තීරණය කළ හැකිය.
ඒ අනුව, දත්ත සමුදායේ ඇති හැකියාව සහ අනෙකුත් ප්‍රධාන ලක්ෂණ සෑම විටම උපකරණ පුවරුවල ප්‍රදර්ශනය කළ යුතු අතර එවිට මෙම තොරතුරු ඔබට අත ළඟ සහ ඔබට සැමවිටම ලබා ගත හැකිය. සිදුවීම් විමර්ශනයට දැනටමත් උපකාර වන සමහර අමතර තොරතුරු, සමහර හදිසි අවස්ථා විමර්ශනය කරන විට, ඒවා දැනටමත් ද්විතීයික උපකරණ පුවරු මත තැබිය යුතුය, නැතහොත් තෙවන පාර්ශවීය අධීක්ෂණ පද්ධති වෙත යොමු කරන සරඹ සබැඳිවල සැඟවිය යුතුය.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

එක් සුප්රසිද්ධ නිරීක්ෂණ පද්ධතියක උදාහරණයක්. මෙය ඉතා සිසිල් අධීක්ෂණ පද්ධතියකි. ඇය බොහෝ දත්ත එකතු කරයි, නමුත් මගේ දෘෂ්ටි කෝණයෙන්, ඇයට උපකරණ පුවරු පිළිබඳ අමුතු සංකල්පයක් ඇත. "උපකරණ පුවරුවක් නිර්මාණය කිරීම" සඳහා සබැඳියක් ඇත. නමුත් ඔබ උපකරණ පුවරුවක් නිර්මාණය කරන විට, ඔබ තීරු දෙකක ලැයිස්තුවක්, ප්රස්තාර ලැයිස්තුවක් නිර්මාණය කරයි. ඔබට යමක් බැලීමට අවශ්‍ය වූ විට, ඔබ මූසිකය සමඟ ක්ලික් කිරීම, අනුචලනය කිරීම, අපේක්ෂිත ප්‍රස්ථාරය සෙවීම ආරම්භ කරයි. තවද මේ සඳහා කාලය ගත වේ, එනම් එවැනි උපකරණ පුවරු නොමැත. ප්‍රස්ථාර ලැයිස්තු පමණක් ඇත.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

ඔබ මෙම උපකරණ පුවරුවලට එකතු කළ යුත්තේ කුමක්ද? ප්රතිචාර දැක්වීමේ කාලය වැනි එවැනි ලක්ෂණයක් සමඟ ඔබට ආරම්භ කළ හැකිය. PostgreSQL සතුව pg_stat_statements දසුන ඇත. එය පෙරනිමියෙන් අක්‍රිය කර ඇත, නමුත් එය සැමවිටම සක්‍රීය කර භාවිතා කළ යුතු වැදගත් පද්ධති දසුන් වලින් එකකි. එය දත්ත ගබඩාවේ ක්‍රියාත්මක කර ඇති සියලුම ධාවන විමසුම් පිළිබඳ තොරතුරු ගබඩා කරයි.

ඒ අනුව, අපට සියලු ඉල්ලීම්වල සම්පූර්ණ ක්‍රියාත්මක කිරීමේ කාලය ගත හැකි අතර එය ඉහත ක්ෂේත්‍ර භාවිතයෙන් ඉල්ලීම් ගණනින් බෙදිය හැකිය. නමුත් මෙය රෝහලේ සාමාන්ය උෂ්ණත්වයයි. අපට වෙනත් ක්ෂේත්‍ර වලින් ආරම්භ කළ හැක - අවම විමසුම් ක්රියාත්මක කිරීමේ කාලය, උපරිම සහ මධ්යන්ය. තවද අපට ප්‍රතිශත ගොඩනගා ගත හැක; PostgreSQL මේ සඳහා අනුරූප කාර්යයන් ඇත. තවද දැනටමත් සම්පුර්ණ කර ඇති ඉල්ලීම් සඳහා අපගේ දත්ත සමුදායේ ප්‍රතිචාර දැක්වීමේ කාලය සංලක්ෂිත වන සංඛ්‍යා කිහිපයක් අපට ලබා ගත හැක, එනම් අපි 'තෝරන්න 1' යන ව්‍යාජ ඉල්ලීම ක්‍රියාත්මක නොකර ප්‍රතිචාර කාලය දෙස නොව, දැනටමත් සම්පූර්ණ කර ඇති ඉල්ලීම් සඳහා ප්‍රතිචාර කාලය විශ්ලේෂණය කර ඇඳීම එක්කෝ වෙනම රූපයක්, නැතහොත් අපි එය මත පදනම්ව ප්‍රස්ථාරයක් ගොඩනඟමු.

පද්ධතිය මගින් දැනට ජනනය වන දෝෂ ගණන නිරීක්ෂණය කිරීම ද වැදගත් වේ. මේ සඳහා ඔබට pg_stat_database දසුන භාවිතා කළ හැක. අපි xact_rollback ක්ෂේත්‍රය වෙත අවධානය යොමු කරමු. මෙම ක්ෂේත්‍රය දත්ත සමුදායේ සිදුවන ආපසු හැරීම් ගණන පමණක් නොව, දෝෂ ගණනද සැලකිල්ලට ගනී. සාපේක්ෂ වශයෙන්, අපට මෙම රූපය අපගේ උපකරණ පුවරුවේ පෙන්විය හැකි අතර දැනට අපට කොපමණ දෝෂ තිබේදැයි බලන්න. බොහෝ දෝෂ තිබේ නම්, ලඝු-සටහන් සොයා බැලීමට සහ ඒවා කුමන ආකාරයේ දෝෂයන් සහ ඒවා සිදුවන්නේ මන්දැයි බැලීමට මෙය හොඳ හේතුවකි, ඉන්පසු ඒවා ආයෝජනය කර විසඳා ගන්න.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

ඔබට Tachometer වැනි දෙයක් එකතු කළ හැකිය. මේවා තත්පරයකට ගනුදෙනු ගණන සහ තත්පරයකට ඉල්ලීම් ගණනයි. සාපේක්ෂ වශයෙන්, ඔබට මෙම සංඛ්‍යා ඔබගේ දත්ත සමුදායේ වත්මන් ක්‍රියාකාරීත්වය ලෙස භාවිතා කළ හැකි අතර ඉල්ලීම්වල උච්ච අවස්ථා තිබේද, ගණුදෙණු වල උපරිම අගයන් තිබේද, නැතහොත්, අනෙක් අතට, යම් පසුබිමක් අසාර්ථක වී ඇති නිසා දත්ත සමුදාය අඩුවෙන් පටවා තිබේද යන්න නිරීක්ෂණය කළ හැක. සෑම විටම මෙම රූපය දෙස බැලීම වැදගත් වන අතර අපගේ ව්‍යාපෘතිය සඳහා මේ ආකාරයේ කාර්ය සාධනය සාමාන්‍ය බව මතක තබා ගැනීම වැදගත්ය, නමුත් ඉහළ සහ පහළ අගයන් දැනටමත් යම් ආකාරයක ගැටළු සහගත සහ තේරුම්ගත නොහැකි ය, එයින් අදහස් කරන්නේ මෙම සංඛ්‍යා ඇයි දැයි සොයා බැලිය යුතු බවයි. එතරම් ඉහළ.

ගනුදෙනු ගණන තක්සේරු කිරීම සඳහා, අපට නැවත pg_stat_database දසුන වෙත යොමු විය හැක. අපට කැපවීම් ගණන සහ ආපසු හැරීම් ගණන එකතු කර තත්පරයට ගනුදෙනු ගණන ලබා ගත හැකිය.

එක් ගනුදෙනුවකට ඉල්ලීම් කිහිපයක් ගැළපිය හැකි බව සෑම දෙනාටම තේරෙනවාද? එබැවින් TPS සහ QPS තරමක් වෙනස් වේ.

තත්පරයකට ඉල්ලීම් ගණන pg_stat_statements වෙතින් ලබා ගත හැකි අතර සම්පුර්ණ කරන ලද සියලුම ඉල්ලීම්වල එකතුව සරලව ගණනය කරන්න. අපි වත්මන් අගය පෙර අගය සමඟ සංසන්දනය කර එය අඩු කර ඩෙල්ටා ලබා ගෙන ප්‍රමාණය ලබා ගන්නා බව පැහැදිලිය.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

ඔබට අවශ්‍ය නම් අමතර ප්‍රමිතික එකතු කළ හැක, එය අපගේ දත්ත සමුදායේ ඇති බව තක්සේරු කිරීමට සහ කිසියම් අක්‍රිය කාලයක් තිබේද යන්න නිරීක්ෂණය කිරීමටද උපකාරී වේ.

මෙම ප්‍රමිතික වලින් එකක් අතිකාල වේ. නමුත් PostgreSQL හි අතිකාලය ටිකක් උපක්‍රමශීලීයි. ඇයි කියලා මම කියන්නම්. PostgreSQL ආරම්භ වූ විට, අතිකාල වාර්තා කිරීම ආරම්භ වේ. නමුත් යම් අවස්ථාවක දී, උදාහරණයක් ලෙස, රාත්‍රියේ යම් කාර්යයක් ක්‍රියාත්මක වූයේ නම්, OOM-ඝාතකයෙකු පැමිණ PostgreSQL ළමා ක්‍රියාවලිය බලහත්කාරයෙන් අවසන් කළේ නම්, මෙම අවස්ථාවෙහිදී PostgreSQL සියළුම සේවාදායකයින්ගේ සම්බන්ධතාවය අවසන් කර, ෂර්ඩ් මතක ප්‍රදේශය නැවත සකස් කර ප්‍රතිසාධනය ආරම්භ කරයි. අවසාන මුරපොල. මුරපොලෙන් මෙම ප්‍රතිසාධනය පවතින අතර, දත්ත සමුදාය සම්බන්ධතා පිළිගන්නේ නැත, එනම් මෙම තත්වය අක්‍රීය කාලය ලෙස තක්සේරු කළ හැකිය. නමුත් අතිකාල කවුන්ටරය නැවත සකසනු නොලැබේ, මන්ද එය පළමු මොහොතේ සිට තැපැල් ස්ථානාධිපති ආරම්භක කාලය සැලකිල්ලට ගනී. එබැවින් එවැනි තත්වයන් මඟ හැරිය හැක.

ඔබ රික්තක සේවකයින් සංඛ්යාව ද නිරීක්ෂණය කළ යුතුය. PostgreSQL හි autovacuum යනු කුමක්දැයි හැමෝම දන්නවාද? මෙය PostgreSQL හි සිත්ගන්නා උප පද්ධතියකි. ඇය ගැන බොහෝ ලිපි ලියා ඇත, බොහෝ වාර්තා කර ඇත. රික්තකය සහ එය ක්‍රියා කළ යුතු ආකාරය පිළිබඳව බොහෝ සාකච්ඡා පවතී. බොහෝ අය එය අත්‍යවශ්‍ය නපුරක් ලෙස සලකති. ඒත් ඒක එහෙමයි. මෙය කසළ එකතු කරන්නෙකුගේ ප්‍රතිසමයක් වන අතර එය කිසිදු ගනුදෙනුවකට අවශ්‍ය නොවන පේළිවල යල් පැන ගිය අනුවාද පිරිසිදු කරන අතර නව පේළි සඳහා වගු සහ දර්ශකවල ඉඩ නිදහස් කරයි.

ඔබ එය නිරීක්ෂණය කිරීමට අවශ්ය වන්නේ ඇයි? මොකද රික්තය සමහර වෙලාවට ගොඩක් රිදෙනවා. එය විශාල සම්පත් ප්‍රමාණයක් පරිභෝජනය කරන අතර එහි ප්‍රතිඵලයක් ලෙස සේවාදායක ඉල්ලීම් දුක් විඳීමට පටන් ගනී.

තවද එය pg_stat_activity view හරහා නිරීක්ෂණය කළ යුතුය, එය මම ඊළඟ කොටසේදී කතා කරමි. මෙම දර්ශනය දත්ත ගබඩාවේ වත්මන් ක්‍රියාකාරකම් පෙන්වයි. තවද මෙම ක්‍රියාකාරකම හරහා අපට දැනට ක්‍රියාත්මක වන රික්තක සංඛ්‍යාව නිරීක්ෂණය කළ හැක. අපට රික්ත ලුහුබැඳීමට හැකි අතර අප සීමාව ඉක්මවා ඇත්නම්, මෙය PostgreSQL සැකසුම් සොයා බැලීමට සහ රික්තයේ ක්‍රියාකාරිත්වය කෙසේ හෝ ප්‍රශස්ත කිරීමට හේතුවකි.

PostgreSQL හි තවත් දෙයක් නම්, දිගු ගනුදෙනු වලින් PostgreSQL ඉතා අසනීප වීමයි. විශේෂයෙන්ම දිගු කාලයක් තිස්සේ එල්ලා වැටෙන සහ කිසිවක් නොකරන ගනුදෙනු වලින්. මෙය ඊනියා stat idle-in-transaction වේ. එවැනි ගනුදෙනුවක් අගුලු තබා ඇති අතර රික්තය වැඩ කිරීම වළක්වයි. තවද එහි ප්රතිඵලයක් වශයෙන්, මේස ඉදිමී, ප්රමාණයෙන් වැඩි වේ. තවද මෙම වගු සමඟ ක්‍රියා කරන විමසුම් මන්දගාමීව ක්‍රියා කිරීමට පටන් ගනී, මන්ද ඔබට මතකයේ සිට තැටියට සහ පසුපසට පේළි වල සියලුම පැරණි අනුවාද සවල කිරීමට අවශ්‍ය වේ. එබැවින්, කාලය, දීර්ඝතම ගනුදෙනුවල කාලසීමාව, දීර්ඝතම රික්තක ඉල්ලීම් ද නිරීක්ෂණය කිරීම අවශ්ය වේ. OLTP පැටවීම සඳහා දැනටමත් මිනිත්තු 10-20-30 කට වඩා වැඩි කාලයක් තිස්සේ ක්‍රියාත්මක වන සමහර ක්‍රියාවලීන් අපි දුටුවහොත්, අපි ඒවා කෙරෙහි අවධානය යොමු කර ඒවා බලහත්කාරයෙන් අවසන් කළ යුතුය, නැතහොත් යෙදුම ප්‍රශස්ත කළ යුතුය. කැඳවනු නොලැබෙන අතර එතරම් කාලයක් එල්ලා නොසිටින්න. විශ්ලේෂණාත්මක වැඩ බරක් සඳහා, විනාඩි 10-20-30 සාමාන්ය වේ; දිගු ඒවා ද ඇත.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි
ඊළඟට අපට සම්බන්ධිත සේවාදායකයින් සමඟ විකල්පය ඇත. අපි දැනටමත් උපකරණ පුවරුවක් සාදා එහි ඇති ප්‍රධාන ප්‍රමිතික පළ කර ඇති විට, අපට එහි සම්බන්ධිත සේවාදායකයින් පිළිබඳ අමතර තොරතුරු ද එක් කළ හැකිය.

සම්බන්ධිත සේවාලාභීන් පිළිබඳ තොරතුරු වැදගත් වන්නේ, PostgreSQL ඉදිරිදර්ශනයකින්, සේවාදායකයින් වෙනස් බැවිනි. හොඳ ගනුදෙනුකරුවන් සිටින අතර නරක ගනුදෙනුකරුවන් ද ඇත.

සරල උදාහරණයක්. සේවාදායකයා විසින් මට යෙදුම තේරෙනවා. යෙදුම දත්ත සමුදායට සම්බන්ධ වී ඇති අතර වහාම එහි ඉල්ලීම් යැවීමට පටන් ගනී, දත්ත සමුදාය ඒවා ක්‍රියාවට නංවා ඒවා ක්‍රියාත්මක කරයි, සහ ප්‍රතිඵල සේවාදායකයා වෙත ලබා දෙයි. මොවුන් හොඳ සහ නිවැරදි ගනුදෙනුකරුවන් වේ.

සේවාදායකයා සම්බන්ධ වී ඇති අවස්ථා තිබේ, එය සම්බන්ධතාවය රඳවා තබා ගනී, නමුත් කිසිවක් නොකරයි. එය නිෂ්ක්‍රීය තත්ත්වයක පවතී.

නමුත් නරක ගනුදෙනුකරුවන් සිටී. උදාහරණයක් ලෙස, එකම සේවාදායකයා සම්බන්ධ කර, ගනුදෙනුවක් විවෘත කර, දත්ත සමුදායේ යමක් සිදු කර පසුව කේතය තුළට ගියේය, උදාහරණයක් ලෙස, බාහිර මූලාශ්‍රයකට ප්‍රවේශ වීමට හෝ ලැබුණු දත්ත සැකසීමට. නමුත් ඔහු ගනුදෙනුව අවසන් කළේ නැත. තවද ගනුදෙනුව දත්ත ගබඩාවේ එල්ලී ඇති අතර රේඛාවේ අගුලක තබා ඇත. මෙය නරක තත්ත්වයකි. ව්‍යතිරේකයක් සහිතව හදිසියේම කිසියම් යෙදුමක් තමා තුළම අසාර්ථක වුවහොත්, ගනුදෙනුව ඉතා දිගු කාලයක් විවෘතව පැවතිය හැකිය. තවද මෙය PostgreSQL කාර්ය සාධනයට සෘජුවම බලපායි. PostgreSQL මන්දගාමී වනු ඇත. එමනිසා, එවැනි සේවාදායකයින් කාලෝචිත ලෙස නිරීක්ෂණය කිරීම සහ ඔවුන්ගේ වැඩ බලහත්කාරයෙන් අවසන් කිරීම වැදගත් වේ. එවැනි තත්ත්වයන් ඇති නොවන පරිදි ඔබේ යෙදුම ප්‍රශස්ත කළ යුතුය.

වෙනත් නරක ගනුදෙනුකරුවන් ගනුදෙනුකරුවන් බලා සිටියි. නමුත් තත්වයන් නිසා ඔවුන් නරක අතට හැරේ. උදාහරණයක් ලෙස, සරල නිෂ්ක්‍රීය ගනුදෙනුවක්: එයට ගනුදෙනුවක් විවෘත කළ හැකිය, සමහර රේඛාවල අගුලු ගත හැකිය, එවිට කේතයේ කොතැනක හෝ එය අසාර්ථක වනු ඇත, එල්ලෙන ගනුදෙනුවක් ඉතිරි වේ. වෙනත් සේවාදායකයෙක් පැමිණ එම දත්තම ඉල්ලා සිටින නමුත් ඔහුට අගුලක් මුණගැසෙනු ඇත, මන්ද එම එල්ලෙන ගනුදෙනුව දැනටමත් අවශ්‍ය පේළි කිහිපයක අගුලු දරයි. දෙවන ගනුදෙනුව පළමු ගනුදෙනුව සම්පූර්ණ කරන තෙක් බලා සිටීම හෝ පරිපාලක විසින් එය බලහත්කාරයෙන් වසා දමනු ඇත. එබැවින්, පොරොත්තු ගනුදෙනු එකතු වී දත්ත සමුදා සම්බන්ධතා සීමාව පිරවිය හැක. සීමාව පිරී ඇති විට, යෙදුමට තවදුරටත් දත්ත සමුදාය සමඟ වැඩ කළ නොහැක. මෙය දැනටමත් ව්‍යාපෘතිය සඳහා හදිසි තත්වයක්. එබැවින්, නරක ගනුදෙනුකරුවන් සොයා බලා කාලෝචිත ලෙස ප්රතිචාර දැක්විය යුතුය.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

නිරීක්ෂණ සඳහා තවත් උදාහරණයක්. තවද මෙහි දැනටමත් හොඳ උපකරණ පුවරුවක් ඇත. ඉහත සම්බන්ධතා පිළිබඳ තොරතුරු තිබේ. DB සම්බන්ධතාවය - 8 කෑලි. ඒ සියල්ලම. කුමන සේවාලාභීන් ක්‍රියාකාරීද, කුමන සේවාලාභීන් කිසිවක් නොකර නිෂ්ක්‍රීයව සිටින්නේද යන්න පිළිබඳව අපට තොරතුරු නොමැත. පොරොත්තු ගනුදෙනු සහ පොරොත්තු සම්බන්ධතා පිළිබඳ කිසිදු තොරතුරක් නොමැත, එනම් මෙය සම්බන්ධතා ගණන පෙන්වන රූපයක් වන අතර එය එයයි. ඉන්පසු ඔබම අනුමාන කරන්න.
PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි
ඒ අනුව, මෙම තොරතුරු නිරීක්ෂණයට එක් කිරීමට, ඔබ pg_stat_activity පද්ධති දර්ශනය වෙත ප්‍රවේශ විය යුතුය. ඔබ PostgreSQL හි බොහෝ කාලයක් ගත කරන්නේ නම්, මෙය ඔබගේ මිතුරා බවට පත් විය යුතු ඉතා හොඳ දසුනකි, මන්ද එය PostgreSQL හි වත්මන් ක්‍රියාකාරකම් පෙන්වයි, එනම් එහි සිදු වන දේ. සෑම ක්‍රියාවලියක් සඳහාම මෙම ක්‍රියාවලිය පිළිබඳ තොරතුරු පෙන්වන වෙනම පේළියක් ඇත: සම්බන්ධතාවය ඇති කළේ කුමන සත්කාරකයෙන්ද, කුමන පරිශීලකයා යටතේද, කුමන නම යටතේද, ගනුදෙනුව ආරම්භ කළ විට, දැනට ක්‍රියාත්මක වන ඉල්ලීම කුමක්ද, අවසන් වරට ක්‍රියාත්මක කළ ඉල්ලීම කුමක්ද. තවද, ඒ අනුව, අපට සංඛ්‍යාලේඛන ක්ෂේත්‍රය භාවිතයෙන් සේවාදායකයාගේ තත්වය ඇගයීමට ලක් කළ හැකිය. සාපේක්ෂ වශයෙන්, අපට මෙම ක්ෂේත්‍රය අනුව කණ්ඩායම් කර දැනට දත්ත සමුදායේ ඇති සංඛ්‍යාලේඛන සහ දත්ත සමුදායේ මෙම සංඛ්‍යාලේඛන ඇති සම්බන්ධතා සංඛ්‍යාව ලබා ගත හැකිය. තවද අපට දැනටමත් ලැබී ඇති අංක අපගේ නිරීක්ෂණ වෙත යවා ඒවා මත පදනම්ව ප්‍රස්ථාර ඇඳිය ​​හැකිය.
ගනුදෙනුවේ කාලසීමාව තක්සේරු කිරීම ද වැදගත් වේ. රික්තක කාලසීමාව තක්සේරු කිරීම වැදගත් බව මම දැනටමත් පවසා ඇත, නමුත් ගනුදෙනු එකම ආකාරයකින් ඇගයීමට ලක් කෙරේ. xact_start සහ query_start ක්ෂේත්‍ර ඇත. ඔවුන්, සාපේක්ෂව කතා කරන විට, ගනුදෙනුවේ ආරම්භක වේලාව සහ ඉල්ලීමේ ආරම්භක වේලාව පෙන්වයි. අපි දැනට පවතින වේලා මුද්‍රාව පෙන්වන now() ශ්‍රිතය ගෙන, ගනුදෙනුව අඩු කර කාල මුද්‍රාව ඉල්ලමු. තවද අපි ගනුදෙනුවේ කාලසීමාව, ඉල්ලීමේ කාලසීමාව ලබා ගනිමු.

අපි දිගු ගනුදෙනු දකිනවා නම්, අපි ඒවා දැනටමත් සම්පූර්ණ කළ යුතුය. OLTP පැටවීමක් සඳහා, දිගු ගනුදෙනු දැනටමත් විනාඩි 1-2-3 කට වඩා වැඩිය. OLAP කාර්ය භාරයක් සඳහා, දිගු ගනුදෙනු සාමාන්‍ය දෙයකි, නමුත් ඒවා සම්පූර්ණ කිරීමට පැය දෙකකට වඩා ගත වේ නම්, මෙයද අපට කොතැනක හෝ ඇලවීමක් ඇති බවට ලකුණකි.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි
සේවාදායකයින් දත්ත සමුදායට සම්බන්ධ වූ පසු, ඔවුන් අපගේ දත්ත සමඟ වැඩ කිරීමට පටන් ගනී. ඔවුන් වගු වෙත ප්‍රවේශ වේ, ඔවුන් වගුවෙන් දත්ත ලබා ගැනීම සඳහා දර්ශක වෙත ප්‍රවේශ වේ. තවද මෙම දත්ත සමඟ ගනුදෙනුකරුවන් අන්තර්ක්‍රියා කරන ආකාරය ඇගයීම වැදගත් වේ.

අපගේ කාර්ය භාරය තක්සේරු කිරීමට සහ අපට "උණුසුම්" වගු මොනවාද යන්න දළ වශයෙන් තේරුම් ගැනීමට මෙය අවශ්‍ය වේ. උදාහරණයක් ලෙස, අපි යම් ආකාරයක වේගවත් SSD ගබඩාවක් මත "උණුසුම්" වගු තැබීමට අවශ්ය අවස්ථාවන්හිදී මෙය අවශ්ය වේ. උදාහරණයක් ලෙස, අපි දිගු කලක් භාවිතා නොකළ සමහර සංරක්ෂිත වගු යම් ආකාරයක "සීතල" ලේඛනාගාරයකට, SATA ධාවක වෙත ගෙන යා හැකි අතර ඒවා එහි ජීවත් වීමට ඉඩ දෙන්න, ඒවා අවශ්ය පරිදි ප්රවේශ වනු ඇත.

කිසියම් නිකුතුවක් සහ යෙදවීමකින් පසු විෂමතා හඳුනා ගැනීමට ද මෙය ප්‍රයෝජනවත් වේ. ව්‍යාපෘතිය නව විශේෂාංගයක් නිකුත් කර ඇතැයි කියමු. උදාහරණයක් ලෙස, අපි දත්ත සමුදාය සමඟ වැඩ කිරීම සඳහා නව ක්‍රියාකාරීත්වයක් එක් කළෙමු. තවද අපි වගු භාවිත ප්‍රස්ථාර සැලසුම් කළහොත්, අපට මෙම ප්‍රස්ථාරවල මෙම විෂමතා පහසුවෙන් හඳුනාගත හැකිය. උදාහරණයක් ලෙස, පිපිරීම් යාවත්කාලීන කිරීම හෝ පිපිරීම් මකා දැමීම. එය ඉතා පැහැදිලිව පෙනෙනු ඇත.

ඔබට "පාවෙන" සංඛ්යා ලේඛනවල විෂමතා ද හඳුනාගත හැකිය. එයින් අදහස් කරන්නේ කුමක් ද? PostgreSQL සතුව ඉතා ශක්තිමත් සහ ඉතා හොඳ විමසුම් උපලේඛනයක් ඇත. තවද සංවර්ධකයින් එහි සංවර්ධනය සඳහා බොහෝ කාලයක් කැප කරයි. ඔහු වැඩ කරන්නේ කෙසේද? හොඳ සැලසුම් සකස් කිරීම සඳහා, PostgreSQL විසින් වගු තුළ දත්ත බෙදා හැරීම පිළිබඳ සංඛ්‍යාලේඛන නිශ්චිත කාල පරතරයකින් සහ නිශ්චිත සංඛ්‍යාතයකින් රැස් කරයි. මේවා වඩාත් පොදු අගයන් වේ: අද්විතීය අගයන් ගණන, වගුවේ NULL පිළිබඳ තොරතුරු, බොහෝ තොරතුරු.

මෙම සංඛ්‍යාලේඛන මත පදනම්ව, සැලසුම්කරු විමසුම් කිහිපයක් ගොඩනඟයි, වඩාත්ම ප්‍රශස්ත එකක් තෝරාගෙන, විමසුම ක්‍රියාත්මක කිරීමට සහ දත්ත ආපසු ලබා දීමට මෙම විමසුම් සැලැස්ම භාවිතා කරයි.

සංඛ්යාලේඛන "පාවෙන" බව සිදු වේ. වගුවේ ගුණාත්මක හා ප්‍රමාණයේ දත්ත කෙසේ හෝ වෙනස් වූ නමුත් සංඛ්‍යාලේඛන එකතු කර නැත. තවද සාදන ලද සැලසුම් ප්‍රශස්ත නොවිය හැකිය. තවද වගු මත පදනම්ව එකතු කරන ලද නිරීක්ෂණ මත පදනම්ව අපගේ සැලසුම් උපප්‍රශස්ත බවට පත් වුවහොත්, අපට මෙම විෂමතා දැක ගත හැකි වනු ඇත. උදාහරණයක් ලෙස, කොතැනක හෝ දත්ත ගුණාත්මකව වෙනස් වූ අතර දර්ශකය වෙනුවට, වගුව හරහා අනුක්රමික ගමන් බලපත්රයක් භාවිතා කිරීමට පටන් ගත්තේය, i.e. විමසුමකට පේළි 100ක් පමණක් ලබා දීමට අවශ්‍ය නම් (100 සීමාවක් ඇත), එවිට මෙම විමසුම සඳහා සම්පූර්ණ සෙවුමක් සිදු කෙරේ. තවද මෙය සෑම විටම කාර්ය සාධනය කෙරෙහි ඉතා නරක බලපෑමක් ඇති කරයි.

තවද අපට මෙය නිරීක්ෂණයේදී දැකිය හැකිය. තවද දැනටමත් මෙම විමසුම දෙස බලන්න, ඒ සඳහා පැහැදිලි කිරීමක් ක්‍රියාත්මක කරන්න, සංඛ්‍යාලේඛන එකතු කරන්න, නව අතිරේක දර්ශකයක් සාදන්න. සහ දැනටමත් මෙම ගැටලුවට ප්රතිචාර දක්වන්න. එය වැදගත් වන්නේ එබැවිනි.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

නිරීක්ෂණ සඳහා තවත් උදාහරණයක්. මම හිතන්නේ ඔහු ඉතා ජනප්‍රිය නිසා බොහෝ දෙනෙක් ඔහුව හඳුනා ගත්තා. එය ඔවුන්ගේ ව්‍යාපෘතිවල භාවිතා කරන්නේ කවුද? Prometheus? Prometheus සමඟ එක්ව මෙම නිෂ්පාදනය භාවිතා කරන්නේ කවුද? කාරණය නම් මෙම අධීක්ෂණයේ සම්මත ගබඩාවේ PostgreSQL සමඟ වැඩ කිරීම සඳහා උපකරණ පුවරුවක් තිබීමයි - postgres_exporter Prometheus. නමුත් එක් නරක විස්තරයක් තිබේ.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

ප්‍රස්ථාර කිහිපයක් තිබේ. සහ බයිට් එකමුතුව ලෙස දක්වා ඇත, එනම් ප්‍රස්ථාර 5 ක් ඇත. එනම් දත්ත ඇතුලත් කිරීම, දත්ත යාවත්කාලීන කිරීම, දත්ත මකා දැමීම, දත්ත ලබා ගැනීම සහ දත්ත ආපසු ලබා දීම. ඒකක මිනුම බයිට් වේ. නමුත් කාරණය වන්නේ PostgreSQL හි සංඛ්‍යාලේඛන දත්ත ටුපල් (පේළි) වලින් ලබා දීමයි. තවද, ඒ අනුව, මෙම ප්‍රස්ථාර ඔබගේ කාර්ය භාරය කිහිප වතාවක්, දස වතාවක් අවතක්සේරු කිරීමට ඉතා හොඳ ක්‍රමයකි, මන්ද ටුපල් යනු බයිටයක් නොවේ, ටුපල් යනු තන්තුවකි, එය බයිට් ගණනාවක් වන අතර එය සැමවිටම විචල්‍ය දිගකින් යුක්ත වේ. එනම්, ටියුපල් භාවිතයෙන් වැඩ බර බයිට් වලින් ගණනය කිරීම යථාර්ථවාදී නොවන කාර්යයක් හෝ ඉතා අපහසු වේ. එබැවින්, ඔබ උපකරණ පුවරුවක් හෝ බිල්ට් අධීක්ෂණයක් භාවිතා කරන විට, එය නිවැරදිව ක්‍රියා කරන බවත් නිවැරදිව තක්සේරු කළ දත්ත ඔබට ලබා දෙන බවත් තේරුම් ගැනීම සැමවිටම වැදගත් වේ.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

මෙම වගු මත සංඛ්යා ලේඛන ලබා ගන්නේ කෙසේද? මෙම කාර්යය සඳහා, PostgreSQL වෙත යම් යම් දසුන් ඇත. සහ ප්රධාන දර්ශනය වේ pg_stat_user_වගුව. User_tables - මෙයින් අදහස් කරන්නේ පරිශීලකයා වෙනුවෙන් සාදන ලද වගු ය. ඊට වෙනස්ව, PostgreSQL විසින්ම භාවිතා කරන පද්ධති දසුන් ඇත. තවද සාරාංශ වගුවක් ඇත Alltables, එයට පද්ධතිය සහ පරිශීලකයන් යන දෙකම ඇතුළත් වේ. ඔබට වඩාත්ම කැමති ඒවායින් ඕනෑම එකකින් ඔබට ආරම්භ කළ හැකිය.

ඉහත ක්ෂේත්‍ර භාවිතයෙන් ඔබට ඇතුළු කිරීම්, යාවත්කාලීන කිරීම් සහ මකාදැමීම් ගණන ඇස්තමේන්තු කළ හැක. මා භාවිතා කළ උපකරණ පුවරුවක උදාහරණය වැඩ බරක ලක්ෂණ ඇගයීමට මෙම ක්ෂේත්‍ර භාවිතා කරයි. එමනිසා, අපට ඔවුන් මත ගොඩනගා ගත හැකිය. නමුත් මේවා බයිට් නොවන ටියුපල් බව මතක තබා ගැනීම වටී, එබැවින් අපට එය බයිට් වලින් පමණක් කළ නොහැක.

මෙම දත්ත මත පදනම්ව, අපට ඊනියා TopN වගු සෑදිය හැක. උදාහරණයක් ලෙස, Top-5, Top-10. අනෙක් ඒවාට වඩා ප්‍රතිචක්‍රීකරණය කරන ලද උණුසුම් වගු ඔබට නිරීක්ෂණය කළ හැකිය. උදාහරණයක් ලෙස, ඇතුළත් කිරීම සඳහා "උණුසුම්" වගු 5 ක්. තවද මෙම TopN වගු භාවිතයෙන් අපි අපගේ කාර්ය භාරය ඇගයීමට ලක් කරන අතර ඕනෑම නිකුතුවක්, යාවත්කාලීන කිරීම් සහ යෙදවීමකින් පසු කාර්ය භාරයේ පිපිරීම් ඇගයීමට ලක් කළ හැක.

මේසයේ ප්‍රමාණය තක්සේරු කිරීම ද වැදගත් ය, මන්ද සමහර විට සංවර්ධකයින් නව අංගයක් ඉදිරිපත් කරන අතර අපගේ වගු ඒවායේ විශාල ප්‍රමාණයෙන් ඉදිමීමට පටන් ගනී, මන්ද ඔවුන් අමතර දත්ත ප්‍රමාණයක් එක් කිරීමට තීරණය කළ නමුත් මෙය කෙසේ වේද යන්න පුරෝකථනය නොකළ බැවිනි. දත්ත සමුදායේ ප්‍රමාණයට බලපායි. එවැනි අවස්ථා අපටද පුදුමයට කරුණකි.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

දැන් ඔබට කුඩා ප්‍රශ්නයක්. ඔබගේ දත්ත සමුදා සේවාදායකයේ පැටවීම ඔබ දුටු විට පැන නගින ප්‍රශ්නය කුමක්ද? ඔබට ඇති ඊළඟ ප්‍රශ්නය කුමක්ද?

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

නමුත් ඇත්ත වශයෙන්ම ප්රශ්නය පැනනගින්නේ පහත පරිදිය. බර පැටවීමට හේතු වන ඉල්ලීම් මොනවාද? එනම්, බර පැටවීම නිසා ඇතිවන ක්රියාවලීන් දෙස බැලීම සිත්ගන්නා සුළු නොවේ. ධාරකයට දත්ත සමුදායක් තිබේ නම්, දත්ත සමුදාය එහි ක්‍රියාත්මක වන අතර දත්ත සමුදායන් පමණක් එහි බැහැර කරන බව පැහැදිලිය. අපි Top විවෘත කළහොත්, PostgreSQL හි යමක් කරන ක්‍රියාවලි ලැයිස්තුවක් අපට පෙනෙනු ඇත. ඔවුන් කරන්නේ කුමක්ද යන්න Top වෙතින් පැහැදිලි නොවනු ඇත.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

ඒ අනුව, ඔබ වැඩිම බරක් ඇති කරන විමසුම් සොයා ගත යුතුය, මන්ද විමසුම් සුසර කිරීම, රීතියක් ලෙස, PostgreSQL හෝ මෙහෙයුම් පද්ධති වින්‍යාසය සුසර කිරීමට හෝ දෘඩාංග සුසර කිරීමට වඩා වැඩි ලාභයක් ලබා දෙයි. මගේ ඇස්තමේන්තුවට අනුව, මෙය ආසන්න වශයෙන් 80-85-90% කි. තවද මෙය වඩා වේගයෙන් සිදු කෙරේ. වින්‍යාසය නිවැරදි කිරීමට, නැවත ආරම්භයක් උපලේඛනගත කිරීමට, විශේෂයෙන් දත්ත සමුදාය නැවත ආරම්භ කළ නොහැකි නම් හෝ දෘඪාංග එකතු කිරීමට වඩා ඉල්ලීමක් නිවැරදි කිරීම වේගවත් වේ. මෙම විමසුමෙන් වඩා හොඳ ප්‍රතිඵලයක් ලබා ගැනීම සඳහා විමසුම කොතැනක හෝ නැවත ලිවීමට හෝ දර්ශකයක් එක් කිරීමට පහසු වේ.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි
ඒ අනුව, ඉල්ලීම් සහ ඒවායේ ප්රමාණවත් භාවය නිරීක්ෂණය කිරීම අවශ්ය වේ. නිරීක්ෂණ සඳහා තවත් උදාහරණයක් ගනිමු. තවද මෙහිද විශිෂ්ට අධීක්ෂණයක් ඇති බව පෙනේ. අනුකරණය පිළිබඳ තොරතුරු ඇත, ප්‍රතිදානය, අවහිර කිරීම, සම්පත් භාවිතය පිළිබඳ තොරතුරු තිබේ. සෑම දෙයක්ම හොඳයි, නමුත් ඉල්ලීම් පිළිබඳ තොරතුරු නොමැත. අපගේ දත්ත ගබඩාවේ ක්‍රියාත්මක වන විමසුම් මොනවාද, ඒවා කොපමණ කාලයක් ක්‍රියාත්මක වේද, මෙම විමසුම් වලින් කොපමණ ප්‍රමාණයක්ද යන්න පැහැදිලි නැත. අපගේ නිරීක්ෂණ තුළ මෙම තොරතුරු සැමවිටම තිබිය යුතුය.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

මෙම තොරතුරු ලබා ගැනීම සඳහා අපට pg_stat_statements මොඩියුලය භාවිතා කළ හැක. එය මත පදනම්ව, ඔබට විවිධ ප්‍රස්ථාර ගොඩනගා ගත හැකිය. උදාහරණයක් ලෙස, ඔබට නිතර නිතර කරන විමසුම්, එනම් බොහෝ විට ක්‍රියාත්මක වන විමසුම් පිළිබඳ තොරතුරු ලබා ගත හැක. ඔව්, යෙදවීමෙන් පසු එය දෙස බලා ඉල්ලීම්වල යම් වැඩිවීමක් තිබේදැයි තේරුම් ගැනීම ද ඉතා ප්‍රයෝජනවත් වේ.

ඔබට දිගම විමසුම් නිරීක්ෂණය කළ හැක, එනම් සම්පූර්ණ කිරීමට වැඩිම කාලයක් ගත වන විමසුම්. ඔවුන් ප්‍රොසෙසරය මත ක්‍රියා කරයි, ඒවා I/O පරිභෝජනය කරයි. අපට මුළු_කාලය, මධ්‍යන්‍ය_කාලය, blk_write_time සහ blk_read_time යන ක්ෂේත්‍ර භාවිතයෙන්ද මෙය ඇගයීමට හැකිය.

අපට සම්පත් භාවිතය, තැටියෙන් කියවන, මතකය සමඟ ක්‍රියා කරන, හෝ, අනෙක් අතට, යම් ආකාරයක ලිවීමේ බරක් නිර්මාණය කිරීම සම්බන්ධයෙන් බරම ඉල්ලීම් ඇගයීමට සහ අධීක්ෂණය කළ හැකිය.

අපට වඩාත් ත්යාගශීලී ඉල්ලීම් ඇගයීමට හැකිය. පේළි විශාල සංඛ්‍යාවක් ආපසු ලබා දෙන විමසුම් මේවාය. උදාහරණයක් ලෙස, මෙය ඔවුන්ට සීමාවක් සැකසීමට අමතක වූ ඉල්ලීමක් විය හැකිය. එය හුදෙක් වගුවේ සම්පූර්ණ අන්තර්ගතය හෝ විමසූ වගු හරහා විමසුම ලබා දෙයි.

තවද ඔබට තාවකාලික ගොනු හෝ තාවකාලික වගු භාවිතා කරන විමසුම් නිරීක්ෂණය කළ හැක.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි
තවද අපට තවමත් පසුබිම් ක්‍රියාවලි තිබේ. පසුබිම් ක්‍රියාවලීන් මූලික වශයෙන් මුරපොලවල් හෝ ඒවා මුරපොලවල් ලෙසද හැඳින්වේ, මේවා ස්වයංක්‍රීය රික්තකය සහ අනුකරණය වේ.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

නිරීක්ෂණ සඳහා තවත් උදාහරණයක්. වම් පැත්තේ Maintenance ටැබ් එකක් තියෙනවා, ඒකට ගිහින් ප්‍රයෝජනවත් දෙයක් බලාගන්න බලාපොරොත්තු වෙනවා. නමුත් මෙහි ඇත්තේ රික්තක ක්‍රියාකාරිත්වය සහ සංඛ්‍යාලේඛන එකතු කිරීමේ කාලය පමණි, තවත් කිසිවක් නැත. මෙය ඉතා දුර්වල තොරතුරු වේ, එබැවින් අපගේ දත්ත සමුදාය තුළ පසුබිම් ක්‍රියාවලීන් ක්‍රියා කරන ආකාරය සහ ඒවායේ ක්‍රියාකාරිත්වයේ ගැටළු තිබේද යන්න පිළිබඳ තොරතුරු අපට සැමවිටම තිබිය යුතුය.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

අපි මුරපොලවල් දෙස බලන විට, මුරපොලවල් අපිරිසිදු පිටු බිඳ දැමූ මතක ප්‍රදේශයේ සිට තැටියට ෆ්ලෂ් කරන බව මතක තබා ගත යුතුය, ඉන්පසු මුරපොලක් සාදන්න. හදිසි අවස්ථාවකදී PostgreSQL හදිසියේ අවසන් කළහොත් ප්‍රතිසාධනය සඳහා ස්ථානයක් ලෙස මෙම මුරපොල භාවිතා කළ හැක.

ඒ අනුව, සියලුම "අපිරිසිදු" පිටු තැටියට ෆ්ලෂ් කිරීම සඳහා, ඔබ යම් ලිඛිත ප්රමාණයක් කළ යුතුය. තවද, රීතියක් ලෙස, විශාල මතකයක් සහිත පද්ධති මත, මෙය ගොඩක් වේ. අපි කෙටි කාල පරාසයක් තුළ බොහෝ විට මුරපොලවල් කරන්නේ නම්, තැටි කාර්ය සාධනය ඉතා සැලකිය යුතු ලෙස පහත වැටෙනු ඇත. සහ සේවාදායක ඉල්ලීම් සම්පත් හිඟකමෙන් පීඩා විඳිති. ඔවුන් සම්පත් සඳහා තරඟ කරන අතර ඵලදායිතාව හිඟ වනු ඇත.

ඒ අනුව, pg_stat_bgwriter හරහා නිශ්චිත ක්ෂේත්‍ර භාවිතා කරමින් අපට සිදුවන මුරපොලවල් ගණන නිරීක්ෂණය කළ හැක. තවද අපට නිශ්චිත කාල පරිච්ඡේදයක් තුළ (විනාඩි 10-15-20 කින්, පැය භාගයකින්) මුරපොලවල් රාශියක් තිබේ නම්, උදාහරණයක් ලෙස, 3-4-5, මෙය දැනටමත් ගැටළුවක් විය හැකිය. ඔබ දැනටමත් දත්ත සමුදාය දෙස බැලිය යුතුය, වින්‍යාසය දෙස බලන්න, එවැනි මුරපොලවල් බහුල වීමට හේතුව කුමක්ද. සමහර විට යම් ආකාරයක විශාල පටිගත කිරීමක් සිදුවෙමින් පවතී. අපි දැනටමත් වැඩ බර ප්‍රස්ථාර එකතු කර ඇති නිසා, අපට දැනටමත් වැඩ බර තක්සේරු කළ හැකිය. අපට දැනටමත් මුරපොල පරාමිතීන් වෙනස් කර ඒවා විමසුම් කාර්ය සාධනයට විශාල ලෙස බලපාන්නේ නැති බවට වග බලා ගත හැකිය.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

මම නැවතත් autovacuum වෙත පැමිණෙන්නේ එය මා කී පරිදි, තැටියේ සහ විමසුම් ක්‍රියාකාරීත්වය යන දෙකම පහසුවෙන් එකතු කළ හැකි දෙයක් වන නිසා, autovacuum ප්‍රමාණය තක්සේරු කිරීම සැමවිටම වැදගත් වේ.

දත්ත ගබඩාවේ ඇති autovacuum කම්කරුවන් සංඛ්යාව සීමිතය. පෙරනිමියෙන්, ඒවායින් තුනක් ඇත, එබැවින් අපට සැමවිටම දත්ත සමුදායේ වැඩ කරන කම්කරුවන් තිදෙනෙකු සිටී නම්, මෙයින් අදහස් කරන්නේ අපගේ ස්වයංක්‍රීය වින්‍යාසය වින්‍යාස කර නොමැති බවයි, අපට සීමාවන් ඉහළ නැංවීම, ස්වයංක්‍රීය සැකසුම් සංශෝධනය කර වින්‍යාසයට ඇතුළු විය යුතුය.
අපට ඇත්තේ කුමන රික්තක සේවකයින්දැයි තක්සේරු කිරීම වැදගත්ය. එක්කෝ එය පරිශීලකයාගෙන් දියත් කර ඇත, DBA පැමිණ යම් ආකාරයක රික්තයක් අතින් දියත් කළ අතර මෙය බරක් නිර්මාණය කළේය. අපට යම් ආකාරයක ගැටලුවක් තිබේ. නැතහොත් ගනුදෙනු කවුන්ටරය ගලවන රික්ත ගණන මෙයයි. PostgreSQL හි සමහර අනුවාද සඳහා මේවා ඉතා බර රික්තක වේ. තවද ඔවුන් මුළු වගුවම කියවන නිසාත්, එම වගුවේ ඇති සියලුම බ්ලොක් ස්කෑන් කිරීම නිසාත් ඔවුන්ට පහසුවෙන් කාර්ය සාධනය එකතු කළ හැක.

සහ, ඇත්ත වශයෙන්ම, රික්තක කාලසීමාව. අපට ඉතා දිගු කාලයක් ක්‍රියාත්මක වන දිගුකාලීන රික්තක තිබේ නම්, මෙයින් අදහස් කරන්නේ අපි නැවතත් රික්ත වින්‍යාසය කෙරෙහි අවධානය යොමු කළ යුතු අතර සමහර විට එහි සැකසුම් නැවත සලකා බැලිය යුතු බවයි. රික්තකය මේසය මත දිගු වේලාවක් (පැය 3-4) ක්‍රියා කරන විට තත්වයක් ඇතිවිය හැකි නිසා, නමුත් රික්තය ක්‍රියා කරන කාලය තුළ, මළ පේළි විශාල ප්‍රමාණයක් නැවත මේසය තුළ එකතු වීමට සමත් විය. රික්තය සම්පූර්ණ වූ වහාම ඔහුට මෙම වගුව නැවත රික්ත කළ යුතුය. අපි තත්වයකට පැමිණෙමු - නිමක් නැති රික්තයක්. මෙම අවස්ථාවේ දී, රික්තය එහි කාර්යය සමඟ සාර්ථකව කටයුතු නොකරන අතර, වගු ක්රමයෙන් ප්රමාණයෙන් ඉදිමීමට පටන් ගනී, නමුත් එහි ප්රයෝජනවත් දත්ත පරිමාව එලෙසම පවතී. එමනිසා, දිගු රික්තක වලදී, අපි සෑම විටම වින්‍යාසය දෙස බලා එය ප්‍රශස්ත කිරීමට උත්සාහ කරමු, නමුත් ඒ සමඟම සේවාදායක ඉල්ලීම්වල ක්‍රියාකාරිත්වයට හානියක් නොවේ.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

වර්තමානයේ ප්‍රවාහ අනුරූකරණයක් නොමැති PostgreSQL ස්ථාපනයක් ප්‍රායෝගිකව නොමැත. අනුකරණය යනු මාස්ටර්ගේ සිට අනුරුවක් වෙත දත්ත ගෙන යාමේ ක්‍රියාවලියයි.

PostgreSQL හි අනුකරණය ගනුදෙනු ලොගයක් හරහා සිදු කෙරේ. විශාරදයා ගණුදෙණු ලොගයක් ජනනය කරයි. ගනුදෙනු ලොගය අනුරුව වෙත ජාල සම්බන්ධතාවය හරහා ගමන් කරයි, පසුව එය අනුරුව මත ප්‍රතිනිෂ්පාදනය වේ. ඒක සරලයි.

ඒ අනුව, pg_stat_replication දසුන ප්‍රතිනිර්මාණ ප්‍රමාදය නිරීක්ෂණය කිරීමට භාවිතා කරයි. නමුත් ඇය සමඟ සෑම දෙයක්ම සරල නැත. 10 අනුවාදයේ, දර්ශනය වෙනස්කම් කිහිපයකට භාජනය වී ඇත. පළමුව, සමහර ක්ෂේත්ර නැවත නම් කර ඇත. සහ සමහර ක්ෂේත්ර එකතු කර ඇත. 10 වන අනුවාදයේ, තත්පර කිහිපයකින් අනුවර්තනය වීමේ ප්‍රමාදය තක්සේරු කිරීමට ඔබට ඉඩ සලසන ක්ෂේත්‍ර දර්ශනය විය. එය ඉතා සුවපහසුයි. 10 වන අනුවාදයට පෙර, බයිට් වලින් අනුවර්තනය වීමේ ප්‍රමාදය තක්සේරු කිරීමට හැකි විය. මෙම විකල්පය 10 වන අනුවාදයේ පවතී, එනම් ඔබට වඩාත් පහසු දේ තෝරා ගත හැකිය - බයිට් වල ප්‍රමාදය තක්සේරු කරන්න හෝ තත්පර වලින් ප්‍රමාදය තක්සේරු කරන්න. ගොඩක් අය ඒ දෙකම කරනවා.

කෙසේ වෙතත්, අනුවර්තනය වීමේ ප්‍රමාදය තක්සේරු කිරීම සඳහා, ඔබ ගනුදෙනුවේ ලොගයේ පිහිටීම දැන සිටිය යුතුය. තවද මෙම ගණුදෙණු ලොග් ස්ථාන හරියටම pg_stat_replication දසුනෙහි ඇත. සාපේක්ෂ වශයෙන්, අපට pg_xlog_location_diff() ශ්‍රිතය භාවිතයෙන් ගණුදෙණු සටහනේ ලකුණු දෙකක් ගත හැක. ඒවා අතර ඇති ඩෙල්ටාව ගණනය කර බයිට් වලින් අනුරූ ප්‍රමාදය ලබා ගන්න. එය ඉතා පහසු සහ සරල ය.

10 අනුවාදයේ, මෙම ශ්‍රිතය pg_wal_lsn_diff() ලෙස නැවත නම් කරන ලදී. පොදුවේ ගත් කල, "xlog" යන වචනය දිස් වූ සියලුම කාර්යයන්, දර්ශන සහ උපයෝගිතා වල, එය "wal" අගය සමඟ ප්‍රතිස්ථාපනය විය. මෙය බැලීම් සහ කාර්යයන් යන දෙකටම අදාළ වේ. මෙය එවැනි නවෝත්පාදනයකි.

ප්ලස්, 10 අනුවාදයේ, විශේෂයෙන් ප්‍රමාදය පෙන්වන රේඛා එකතු කරන ලදී. එනම් ලිවීමේ ප්‍රමාදය, ෆ්ලෂ් ප්‍රමාදය, නැවත ධාවනය ප්‍රමාදය. එනම් මේ දේවල් නිරීක්ෂණය කිරීම වැදගත්. අපට අනුවර්තනය වීමේ ප්‍රමාදයක් ඇති බව අපට පෙනෙන්නේ නම්, එය දිස් වූයේ ඇයි, එය පැමිණියේ කොහෙන්ද යන්න සොයා බලා ගැටලුව විසඳා ගත යුතුය.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

සෑම දෙයක්ම පාහේ පද්ධති ප්‍රමිතික සමඟ පිළිවෙලට තිබේ. ඕනෑම අධීක්‍ෂණයක් ආරම්භ වූ විට, එය පද්ධති ප්‍රමිතික සමඟ ආරම්භ වේ. මෙය ප්‍රොසෙසර, මතකය, හුවමාරුව, ජාලය සහ තැටි බැහැර කිරීමයි. කෙසේ වෙතත්, බොහෝ පරාමිතීන් පෙරනිමියෙන් නොමැත.

ප්රතිචක්රීකරණය කිරීමේ ක්රියාවලිය සමඟ සෑම දෙයක්ම පිළිවෙලට තිබේ නම්, තැටි ප්රතිචක්රීකරණය කිරීමේදී ගැටළු තිබේ. රීතියක් ලෙස, අධීක්ෂණ සංවර්ධකයින් ප්‍රතිදානය පිළිබඳ තොරතුරු එක් කරයි. එය iops හෝ බයිට් වලින් විය හැක. නමුත් තැටි උපාංගවල ප්‍රමාදය සහ භාවිතය ගැන ඔවුන්ට අමතක වේ. අපගේ තැටි පටවා ඇති ආකාරය සහ ඒවා කෙතරම් මන්දගාමීද යන්න තක්සේරු කිරීමට අපට ඉඩ සලසන වඩාත් වැදගත් පරාමිතීන් වේ. අපට ඉහළ ප්‍රමාදයක් තිබේ නම්, මෙයින් අදහස් කරන්නේ තැටි සමඟ යම් ගැටළු ඇති බවයි. අපට ඉහළ උපයෝගීතාවයක් තිබේ නම්, එයින් අදහස් වන්නේ තැටි සමඟ කටයුතු නොකරන බවයි. මේවා ප්‍රතිදානයට වඩා හොඳ ලක්ෂණ වේ.

තවද, මෙම සංඛ්‍යාලේඛන ප්‍රතිචක්‍රීකරණ ප්‍රොසෙසර සඳහා සිදු කරනු ලබන පරිදි /proc ගොනු පද්ධතියෙන් ද ලබාගත හැක. මෙම තොරතුරු නිරීක්ෂණයට එක් නොකරන්නේ මන්දැයි මම නොදනිමි. කෙසේ වෙතත්, මෙය ඔබගේ නිරීක්ෂණයේ තිබීම වැදගත් වේ.

ජාල අතුරුමුහුණත් සඳහා ද එය අදාළ වේ. ජාල ප්‍රතිදානය පිළිබඳ තොරතුරු පැකට් වල, බයිට් වල ඇත, කෙසේ වෙතත්, ප්‍රමාදය පිළිබඳ තොරතුරු සහ භාවිතය පිළිබඳ තොරතුරු නොමැත, නමුත් මෙය ද ප්‍රයෝජනවත් තොරතුරු වේ.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

ඕනෑම නිරීක්ෂණයක් අඩුපාඩු තිබේ. තවද ඔබ කුමන ආකාරයේ නිරීක්ෂණයක් කළත්, එය සැමවිටම යම් නිර්ණායක සපුරාලන්නේ නැත. කෙසේ වෙතත්, ඒවා සංවර්ධනය වෙමින් පවතී, නව විශේෂාංග සහ නව දේවල් එකතු වේ, එබැවින් යමක් තෝරා එය අවසන් කරන්න.

සහ අවසන් කිරීම සඳහා, ලබා දී ඇති සංඛ්‍යාලේඛනවලින් අදහස් කරන්නේ කුමක්ද සහ ගැටළු විසඳීමට ඔබට ඒවා භාවිතා කළ හැකි ආකාරය පිළිබඳ අදහසක් ඔබට සැමවිටම තිබිය යුතුය.

සහ ප්රධාන කරුණු කිහිපයක්:

  • ඔබ සැමවිටම පවතින බව නිරීක්ෂණය කළ යුතු අතර උපකරණ පුවරු තිබිය යුතු අතර එමඟින් දත්ත සමුදාය සමඟ සියල්ල පිළිවෙලට ඇති බව ඔබට ඉක්මනින් තක්සේරු කළ හැකිය.
  • නරක ගනුදෙනුකරුවන් ඉවත් කිරීමට සහ ඔවුන්ව වෙඩි තැබීම සඳහා ඔබේ දත්ත ගබඩාව සමඟ ගනුදෙනුකරුවන් වැඩ කරන්නේ කුමක් දැයි ඔබට සැමවිටම අදහසක් තිබිය යුතුය.
  • මෙම සේවාදායකයින් දත්ත සමඟ වැඩ කරන ආකාරය ඇගයීම වැදගත් වේ. ඔබේ වැඩ බර ගැන ඔබට අදහසක් තිබිය යුතුය.
  • කුමන විමසුම් ආධාරයෙන් මෙම කාර්ය භාරය සෑදෙන්නේද යන්න ඇගයීම වැදගත් වේ. ඔබට විමසුම් ඇගයීමට හැකිය, ඔබට ඒවා ප්‍රශස්ත කිරීමට, ඒවා ප්‍රතිනිර්මාණය කිරීමට, ඒවා සඳහා දර්ශක තැනීමට හැකිය. එය ඉතා වැදගත්.
  • පසුබිම් ක්‍රියාවලීන් සේවාලාභී ඉල්ලීම් කෙරෙහි ඍණාත්මක ලෙස බලපෑ හැකිය, එබැවින් ඔවුන් බොහෝ සම්පත් භාවිතා නොකරන බව නිරීක්ෂණය කිරීම වැදගත් වේ.
  • පද්ධති ප්‍රමිතික මඟින් ඔබේ සේවාදායකයන්ගේ පරිමාණය සහ ධාරිතාව වැඩි කිරීම සඳහා සැලසුම් කිරීමට ඔබට ඉඩ සලසයි, එබැවින් ඒවා නිරීක්ෂණය කිරීම සහ ඇගයීම ද වැදගත් වේ.

PostgreSQL අධීක්ෂණ මූලික කරුණු. ඇලෙක්සි ලෙසොව්ස්කි

ඔබ මෙම මාතෘකාව ගැන උනන්දුවක් දක්වන්නේ නම්, ඔබට මෙම සබැඳි අනුගමනය කළ හැකිය.
http://bit.do/stats_collector - මෙය සංඛ්‍යාලේඛන එකතුකරන්නාගේ නිල ලියකියවිලි වේ. සියලුම සංඛ්‍යානමය දසුන් පිළිබඳ විස්තරයක් සහ සියලුම ක්ෂේත්‍රවල විස්තරයක් ඇත. ඔබට ඒවා කියවා තේරුම් ගැනීමට සහ විශ්ලේෂණය කිරීමට හැකිය. ඒවා මත පදනම්ව, ඔබේ ප්‍රස්ථාර ගොඩනඟා ඒවා ඔබේ අධීක්ෂණයට එක් කරන්න.

උදාහරණ ඉල්ලීම්:
http://bit.do/dataegret_sql
http://bit.do/lesovsky_sql

මෙය අපගේ ආයතනික ගබඩාව සහ මගේම වේ. ඒවායේ උදාහරණ විමසුම් අඩංගු වේ. එහි ඇති ශ්‍රේණි වලින් තෝරන්න* වෙතින් විමසීම් නොමැත. අමු අංක කියවිය හැකි, පහසු අගයන් බවට පත් කිරීමට ඔබට ඉඩ සලසන රසවත් කාර්යයන් භාවිතා කරමින්, එකතු කිරීම් සමඟ දැනටමත් සූදානම් කළ විමසුම් තිබේ, එනම් මේවා බයිට්, කාලය. ඔබට ඒවා ලබා ගැනීමට, ඒවා දෙස බැලීමට, ඒවා විශ්ලේෂණය කිරීමට, ඒවා ඔබගේ අධීක්ෂණයට එක් කිරීමට, ඒවා මත පදනම්ව ඔබේ අධීක්ෂණය ගොඩනගා ගත හැකිය.

ඔබගේ ප්රශ්න

ප්‍රශ්නය: ඔබ සන්නාම ප්‍රචාරණය නොකරන බව ඔබ කීවා, නමුත් මම තවමත් කුතුහලයෙන් සිටිමි - ඔබේ ව්‍යාපෘතිවල ඔබ භාවිතා කරන්නේ කුමන ආකාරයේ උපකරණ පුවරුද?
පිළිතුර: එය වෙනස් වේ. අපි පාරිභෝගිකයෙකු වෙත පැමිණෙන අතර ඔහුට දැනටමත් ඔහුගේම අධීක්ෂණයක් ඇත. තවද ඔවුන්ගේ අධීක්ෂණයට එකතු කළ යුතු දේ පිළිබඳව අපි පාරිභෝගිකයාට උපදෙස් දෙන්නෙමු. නරකම තත්වය වන්නේ Zabbix ය. එයට TopN ප්‍රස්ථාර ගොඩනැගීමේ හැකියාවක් නොමැති නිසා. අපිම පාවිච්චි කරනවා ඔක්මීටරය, මොකද අපි මේ අය එක්ක අධීක්ෂණ කටයුතු ගැන උපදේශනය කරමින් හිටියා. ඔවුන් අපගේ තාක්ෂණික පිරිවිතර මත පදනම්ව PostgreSQL නිරීක්ෂණය කළහ. මම ලියන්නේ මගේම සුරතල් ව්‍යාපෘතියක්, එය ප්‍රොමිතියස් හරහා දත්ත රැස් කර එය ලබා දෙයි ග්‍රැෆනා. මගේ කාර්යය වන්නේ ප්‍රොමිතියස් හි මගේම අපනයනකරුවෙකු නිර්මාණය කර ග්‍රැෆානා හි සියල්ල ලබා දීමයි.

ප්‍රශ්නය: AWR වාර්තාවල ප්‍රතිසමයක් හෝ... එකතු කිරීමක් තිබේද? ඔබ මේ වගේ දෙයක් ගැන දන්නවාද?
පිළිතුර: ඔව්, AWR යනු කුමක්දැයි මම දනිමි, එය අපූරු දෙයක්. මේ මොහොතේ පහත දැක්වෙන මාදිලිය ආසන්න වශයෙන් ක්රියාත්මක කරන විවිධ බයිසිකල් තිබේ. යම් කාල පරතරයකදී, සමහර මූලික සටහන් එකම PostgreSQL වෙත හෝ වෙනම ගබඩාවකට ලියා ඇත. ඔබට ඒවා අන්තර්ජාලයේ ගූගල් කළ හැකිය, ඒවා තිබේ. එවැනි දෙයක සංවර්ධකයින්ගෙන් එක් අයෙක් PostgreSQL නූල් හි sql.ru සංසදයේ වාඩි වී සිටී. එහිදී ඔබට ඔහුව අල්ලා ගත හැකිය. ඔව්, එවැනි දේවල් තිබේ, ඒවා භාවිතා කළ හැකිය. ප්ලස් එහි pgCenter මමත් ලියන්නේ ඒ දේම කරන්න ඉඩ දෙන දෙයක්.

PS1 ඔබ postgres_exporter භාවිතා කරන්නේ නම්, ඔබ භාවිතා කරන්නේ කුමන උපකරණ පුවරුවද? ඒවායින් කිහිපයක් තිබේ. ඒවා දැනටමත් කල් ඉකුත් වී ඇත. සමහර විට ප්‍රජාව යාවත්කාලීන අච්චුවක් නිර්මාණය කරයිද?

PS2 pganalyze ඉවත් කරන ලද්දේ එය කාර්ය සාධන අධීක්ෂණය සහ ස්වයංක්‍රීය සුසර කිරීමේ යෝජනා කෙරෙහි අවධානය යොමු කරන හිමිකාර SaaS පිරිනැමීමක් වන බැවිනි.

සමීක්ෂණයට සහභාගී විය හැක්කේ ලියාපදිංචි පරිශීලකයින්ට පමණි. පුරන්නකරුණාකර.

කුමන ස්වයං-සත්කාරක postgresql අධීක්ෂණ (උපකරණ පුවරුව සමඟ) ඔබ හොඳම ලෙස සලකන්නේ?

  • 30,0%Alexey Lesovsky හෝ zabbix 4.4 හෝ libzbxpgsql + zabbix libzbxpgsql + zabbix3 වෙතින් Zabbix + එකතු කිරීම්

  • 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 වේ - මට එය මකා දැමිය නොහැක1

  • 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 දෙනෙක් ඡන්දය දීමෙන් වැළකී සිටියහ.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න