ලිපි නාමාවලිය
සොකට් මාර්ගයක් නිසා ඇතිවන ලේ වැගිරීමක්
කතාව මෙහෙමයි.
මගේ යාළුවෙක් ඉන්නවා, ගිය මාසේ එයාගේ සර්වර් එක ආයෙත් කැඩිලා ගියා.
ඔහු මා වෙත පැමිණ පැවසුවේ මොනිට් එක දෝෂ වාර්තා කරමින් php-fpm සොකට් ගොනුව සොයාගත නොහැකි බවත්, පසුව සේවාව නිතර නැවත ආරම්භ වීමට පටන් ගත් බවත්, බර වැඩි වෙමින් පවතින බවත්ය. පාන්දර තුනට, සේවාදායකය නිවැරදි කිරීම සඳහා හදිසි ඇමතුමකින් ඔහුට කතා කරන ලදී.
මම ඔයාට කිව්වා කලබල වෙන්න එපා කියලා, මොනිට් ලොග් පෙන්නන්න කියලා.
මම ඒක දිහා බැලුවම, වාව්, ඒක මේ වගේ දෝෂ වලින් පිරිලා තිබුණා:
දෝෂය: Unix socket /run/php/php8.4-fpm.sock සම්බන්ධතා දෝෂය — එවැනි ගොනුවක් හෝ නාමාවලි දෝෂයක් නොමැත: 'php8.4-fpm' f ai led protocol test [DEFAULT] at /run/php/php8.4-fpm.sock — /run/php/php8.4-fpm.sock සඳහා unix socket සෑදිය නොහැක.
මම ඔහුගෙන් ඇහුවා, "ඔයාගේ සොකට් ගොනුව දැන් කොහෙද?" කියලා.
එයා දන්නේ නෑ කිව්වා, ඒ නිසා මම ඒක default settings වලින් install කළා.
මම ඔයාට කිව්වා ඉන්න කියලා, මම ඔයාව බලන්නම්.
ඊට පස්සේ මම SSH එකට ගිහින් බැලුවා එයාගේ ඇත්ත සොකට් ෆයිල් එක... කියලා තියෙනවා. /run/php/php8.4-fpm-etufo.org.sock.
මම කිව්වා, යාළුවා, ඔයාගේ සොකට් මාර්ගය වෙනස් දේවල් දෙකක්, ඒකට සන්නිවේදනය කරන්න පුළුවන් නම් ඒක ආශ්චර්යයක් වේවි.
අද මම මෙය කොටස් කිහිපයකට බෙදා විස්තරාත්මකව පැහැදිලි කරන්නම්, ඒ වගේම ගැටලුවට විසඳුමක් ද ලබා දෙන්නම්.
ඔබ සිතන්නේ ඔත්තු බැලීම ඔබව ආරක්ෂා කරන බවයි, නමුත් ඇත්තටම එය ඔබට හානි කරනවා.
මොනිට් ලොග් වල බහුලව දක්නට ලැබෙන දෝෂ වර්ගය ගැන කතා කිරීමෙන් පටන් ගනිමු.
ඔබ මෙය දකින විට:
දෝෂය: Unix socket /run/php/php8.4-fpm.sock සම්බන්ධතා දෝෂය — එවැනි ගොනුවක් හෝ නාමාවලියක් නොමැත.
මෙයින් ඇඟවෙන්නේ මොනිට් මෙම සොකට් එක හරහා php-fpm සේවාව හඳුනා ගැනීමට උත්සාහ කරන නමුත් ගොනුව සොයාගත නොහැකි බවයි.
ඊළඟට සිදුවන්නේ මොනිට් සේවාව නැවත ආරම්භ කිරීමට උත්සාහ කරන අතර, ලොග් මඟින් පහත සඳහන් දෑ පෙන්වනු ඇත:
තොරතුරු: 'php8.4-fpm' නැවත ආරම්භ කිරීමට උත්සාහ කිරීම තොරතුරු: 'php8.4-fpm' stop: '/usr/sbin/service php8.4-fpm stop' තොරතුරු: 'php8.4-fpm' start: '/usr/sbin/service php8.4-fpm start'
ඒක හරිම දක්ෂයි වගේ නේද? ඒක ස්වයංක්රීයව අලුත්වැඩියා වෙනවා.
නමුත් ගැටලුව වන්නේ මෙම නිතර නැවත ආරම්භ කිරීම සැබෑ ව්යසනය වීමයි.
මෙය සිතා බලන්න: php-fpm නැවත ආරම්භ වන විට, දැනට සකසන සියලුම ඉල්ලීම් වලට බාධා ඇති වේ, සියලුම සැසි නැති විය හැකි අතර, සියලු සම්බන්ධතා නැවත ස්ථාපිත කිරීමට අවශ්ය වේ. එය නැවත නැවත ආරම්භ වී කෙටි කාලයක් තුළ අසාර්ථක වුවහොත්, සේවාදායක භාරය ක්ෂණිකව ඉහළ යනු ඇත.
ලොග් මඟින් මෙවැනි තවත් තොරතුරු හෙළි කරනු ඇත:
දෝෂය: 'et ufo .org' loadavg (මිනිත්තු 15) සම්පත් සීමාවට ගැලපෙන 8.8 [loadavg (මිනිත්තු 15) > 8.0] දෝෂය: 'et ufo .org' cpu පද්ධති භාවිතය සම්පත් සීමාවට ගැලපෙන 33.9% [cpu පද්ධති භාවිතය > 30.0%]
සේවාදායකය දැනටමත් අධික බරකින් යුක්තව පැවතුනද, අධීක්ෂණ පද්ධතිය තවමත් සේවාව නැවත නැවත ආරම්භ කරමින් සිටියේය. මෙය ගින්නක් නිවා දැමීමක් නොවේ; එය ගින්නට ඉන්ධන එකතු කරමින් සිටියේය.
ගැටලුවේ සාරය: යතුර සහ අගුල නොගැලපේ.
සමීපව විශ්ලේෂණය කිරීමෙන් පසු, ගැටළුව ඇත්ත වශයෙන්ම තරමක් සරල ය.
මොනිට් වින්යාස ගොනුවේ දක්වා ඇති සොකට් මාර්ගය:/run/php/php8.4-fpm.sock
කෙසේ වෙතත්, php-fpm ක්රියාත්මක වන සත්ය සොකට් මාර්ගය වන්නේ:/run/php/php8.4-fpm-etufo.org.sock
එක් ශ්රිතයක් A ගොනුව අනාවරණය කිරීමට අදහස් කර ඇති අතර, අනෙක් ශ්රිතය ඇත්ත වශයෙන්ම B ගොනුව නම්, අනාවරණය පැහැදිලිවම අසාර්ථක වනු ඇත.
මේක හරියට මොකක් හරි වගේ.
ඔයාට යතුරක් තියෙනවා, තවත් කාමරයක අගුලු දාලා.
ඔබ සෑම දිනකම දොර විවෘත කිරීමට ඔබේ යතුර භාවිතා කරයි, නමුත් ඔබ එය සොයා ගන්නා සෑම අවස්ථාවකම එය විවෘත නොවේ, ඉන්පසු ඔබ පවසන්නේ අගුල කැඩී ඇති බවයි.
ඇත්තටම, අගුල කැඩිලා නැහැ; ඒ ඔබේ යතුර අගුලට නොගැලපෙන එක විතරයි.
විසඳන්නනිරීක්ෂණ අධීක්ෂණයPHP-FPM සමඟ වින්යාසය නොගැලපේ

විකල්ප 1: මොනිටර වින්යාසය වෙනස් කරන්න.
ඔබට php-fpm හි පවතින සොකට් වින්යාසය තබා ගැනීමට අවශ්ය නම්, මොනිට් වින්යාසය වෙනස් කරන්න.
මොනිට් වින්යාස ගොනුව සොයාගෙන පහත සඳහන් දෑ වෙනස් කරන්න:
if failed unixsocket /run/php/php8.4-fpm.sock then restart
එය වෙනස් කරන්න:
if failed unixsocket /run/php/php8.4-fpm-chenweiliang.com.sock then restart
ඉන්පසු නැවත පූරණයක් සිදු කරන්න:
sudo monit reload
ඒක තමයි.
විකල්ප 2: php-fpm වින්යාසය වෙනස් කරන්න.
ඔබට පෙරනිමි මාර්ගය භාවිතා කිරීමට අවශ්ය නම්, php-fpm හි සංචිත වින්යාසය වෙනස් කරන්න.
සංස්කරණය කරන්න /etc/php/8.4/fpm/pool.d/chenweiliang.com.confසවන් දීමේ විධානය මෙසේ වෙනස් කරන්න:
listen = /run/php/php8.4-fpm.sock
ඉන්පසු php-fpm නැවත ආරම්භ කරන්න:
sudo systemctl restart php8.4-fpm
ඒක තමයි.
විසඳුම් දෙකම ගැටළුව විසඳා ගත හැකිය; ඔබ තෝරා ගන්නා එක ඔබේ විශේෂිත තත්වයන් මත රඳා පවතී.
ඔබගේ සේවාදායකයේ කොපමණ අඩවි සත්කාරකත්වය දරන්නේද? සෑම අඩවියකටම ස්වාධීන සොකට් එකක් තිබේද? එක් අඩවියක් පමණක් තිබේ නම්, පෙරනිමි මාර්ගය සරල වනු ඇත.
මට හදවතින්ම කතා කරන්න දෙන්න.
නඩත්තු කිරීමේදී සේවාදායක ස්ථායිතාවයට වඩාත්ම පහසුවෙන් නොසලකා හැරිය හැකි නමුත් වඩාත්ම බලපෑම් ඇති කරන වින්යාස ගැටළු මේවා බව මම අවංකවම විශ්වාස කරමි.
සොකට් මාර්ගයක් වැරදි ලෙස ලියා ඇත්නම්, මතුපිටින් දේවල් සන්සුන්ව පෙනෙන්නට පුළුවන, නමුත් යථාර්ථයේ දී, අධීක්ෂණ පද්ධතිය ව්යාජ අනතුරු ඇඟවීම් ලබා දෙයි, සේවාව අහඹු ලෙස නැවත ආරම්භ වේ, සහ බර පැහැදිලි කළ නොහැකි ලෙස ඉහළ යයි.
සේවාදායකය ඉතා පැරණි බවත් උත්ශ්රේණි කිරීමක් අවශ්ය බවත් ඔබ සිතනු ඇත, නමුත් ඇත්ත වශයෙන්ම එය වින්යාස ගොනුවේ මාර්ගය වැරදි වීම විය හැකිය.
එක් ජ්යෙෂ්ඨ සගයෙක් වරක් පැවසූ පරිදි, "සේවා ස්ථාවරත්වය සහතික කිරීම සඳහා වන පළමු ආරක්ෂක මාර්ගය වන්නේ අධීක්ෂණයේ නිරවද්යතාවයයි."
විස්තර සාර්ථකත්වය හෝ අසාර්ථකත්වය තීරණය කරන අතර, සේවාදායක පරිසරයක මෙය සම්පූර්ණයෙන්ම සත්ය වේ.
අද සිට, ඔබගේ අධීක්ෂණ වින්යාසය පරීක්ෂා කරන්න. මෙම සරල ලෙස පෙනෙන ගැටලුව ඔබගේ සේවාදායකය බිඳ වැටීමට ඉඩ නොදෙන්න.
මගේ ලිපිය කියෙව්වට ස්තූතියි. ඊළඟ වතාවේ හමුවෙමු.
චෙන් වෙයිලියැන්ග්ගේ බ්ලොග් අඩවියේ ( https://www.chenweiliang.com/ ) බෙදාගත් "Monit අධීක්ෂණ වින්යාසය සහ PHP-FPM හි 'එවැනි ගොනුවක් හෝ නාමාවලි දෝෂයක් නොමැත'" යන ලිපිය ඔබට ප්රයෝජනවත් වනු ඇතැයි අපි බලාපොරොත්තු වෙමු.
මෙම ලිපියේ සබැඳිය බෙදා ගැනීමට නිදහස් වන්න: https://www.chenweiliang.com/cwl-34000.html
