ලිපි නාමාවලිය
- 1 PHP-FPM අධික ලෙස පටවා ඇති ප්රධාන හේතුව
- 2 PHP-FPM ක්රියාවලි සංචිත ප්රශස්තිකරණය (මූලික පරාමිති ගැලපීම)
- 3 ඕනෑම වේලාවක ප්රගතිය නිරීක්ෂණය කිරීමට PHP-FPM තත්ව නිරීක්ෂණය සක්රීය කරන්න.
- 4 ගැටළු ඉක්මනින් දෝශ නිරාකරණය කිරීම සඳහා PHP-FPM ලොග් ප්රශස්ත කරන්න.
- 5 මතක කාන්දු වීම වැළැක්වීම සඳහා PHP-FPM නිතිපතා නැවත ආරම්භ කරන්න.
- 6 ගැටලුව දිගටම පැවතුනොත් කුමක් කළ යුතුද? තවදුරටත් ප්රශස්තිකරණය!
- 7 සාරාංශය: PHP-FPM ප්රශස්ත කරන්න, එවිට වෙබ් අඩවිය තවදුරටත් බිඳ වැටෙන්නේ නැත!
ඔබ කවදා හෝ මෙම තත්වයට මුහුණ දී තිබේද?වෙබ් අඩවි ප්රවේශය හදිසියේම මන්දගාමී විය, නැතහොත් 500 දෝෂයකට පවා හේතු විය. PHP-FPM නැවත ආරම්භ කිරීමෙන් පසු එය සාමාන්ය තත්ත්වයට පත් විය., නමුත් ටික වේලාවකට පසු ගැටලුව නැවත මතුවෙනවාද? මේක හරිම කලකිරීමක්!
මෙය සිදුවන්නේ ඇයි?ඇත්තටම, මෙය සාමාන්යයෙන්PHP-FPM ක්රියාවලි සංචිතය නිසි ලෙස වින්යාස කර නොමැත, නැතහොත් සේවාදායක සම්පත් ප්රමාණවත් නොවේ.මගින් ඇති විය. අද, අපි තරයේ ප්රශස්ත කරන්නෙමු හෙස්ටියාසීපී PHP-FPM ආවරණය යටතේ වෙබ් අඩවිය පර්වතයක් මෙන් ස්ථාවර කරයි!
PHP-FPM අධික ලෙස පටවා ඇති ප්රධාන හේතුව
PHP-FPM යනුක්රියාවලි කළමනාකරුගතික ඉල්ලීම් හැසිරවීම සඳහා වගකිව යුතු. වින්යාසය සාධාරණ නොවේ නම්, එය හේතු විය හැක:
- සේවාදායක සම්පත් අවසන් වී ඇත., PHP-FPM හට නව ඉල්ලීම් වලට කාලෝචිත ආකාරයකින් ප්රතිචාර දැක්වීමට නොහැකි වීමට හේතු වේ;
- ක්රියාවලි ඉතා අඩුයි, ගමනාගමනය හදිසියේම වැඩි වූ විට, එය නියමිත වේලාවට සැකසිය නොහැක;
- ක්රියාවලි භාවිතය ඉතා ඉහළයි., CPU භාරය පුපුරා යාමට හේතු වේ.

PHP-FPM අධික ලෙස පටවා ඇත්දැයි දැන ගන්නේ කෙසේද?
භාවිතා කළ හැකිය top නැත්නම් htop CPU සහ මතක භාවිතය බැලීමට විධානය:
top -c
පහත සඳහන් ක්රියාවලි තොරතුරු වලට සමාන දෙයක් ඔබ දුටුවහොත්, එයින් අදහස් වන්නේ PHP-FPM අධික බරක් යටතේ ක්රියාත්මක වන බවයි:
1669293 abc 20 0 790284 227880 185568 R 73.1 0.9 1:30.09 php-fpm: pool chenweiliang.com
1669522 abc 20 0 801924 224224 170236 R 69.9 0.9 0:59.01 php-fpm: pool chenweiliang.com
මෙම ක්රියාවලීන් CPU වලින් 70% කට වඩා ගන්නා ආකාරය බලන්න? මෙය බොහෝ විට සිදුවුවහොත්, ඔබේ PHP-FPM ගැටලුවක් තිබිය යුතුයි.!
ඉතින්, සේවාදායකය තවදුරටත් අධික ලෙස පටවා නොගන්නා ලෙස PHP-FPM වින්යාසය ප්රශස්ත කරන්නේ කෙසේද?
PHP-FPM ක්රියාවලි සංචිත ප්රශස්තිකරණය (මූලික පරාමිති ගැලපීම)
පළමුව, විවෘත කරන්න php-fpm වින්යාස ගොනු:
sudo nano /etc/php/*/fpm/pool.d/www.conf- *PHP8.3 වැනි ඔබේ PHP අනුවාදයට වෙනස් කර, එය මෙයට වෙනස් කරන්න:
/etc/php/8.3/fpm/pool.d/www.conf
HestiaCP විසින් සකසා ඇති PHP අනුවාදය විමසන්න.
v-list-web-domain user domain.com
උදා:
v-list-web-domain abc chenweiliang.com
ප්රතිදානයේදී, ඔබට මෙවැනි දෙයක් පෙනෙනු ඇත:
PHP SUPPORT yes
PHP MODE php-fpm
PHP VERSION 8.3
මෙයින් අදහස් කරන්නේ වෙබ් අඩවිය භාවිතා කරන බවයි PHP 8.3.
ඔබගේ PHP-FPM වින්යාසය දෙස බලමු:
[chenweiliang.com]
listen = /run/php/php8.3-fpm-chenweiliang.com.sock
listen.owner = abc
listen.group = www-data
listen.mode = 0660
user = abc
group = abc
pm = ondemand
pm.max_children = 8
pm.max_requests = 4000
pm.process_idle_timeout = 10s
ඔබට පෙනෙනවා ඇති ඔබේ pm භාවිතා කරන එක වන්නේ ondemand,අක්රිය කාලය තුළ සම්පත් භාවිතය අඩු කළ හැකි වුවද, හදිසියේම ගමනාගමනය වැඩි වූ විට, ක්රියාවලියට නියමිත වේලාවට ප්රතිචාර දැක්වීමට නොහැකි විය හැකිය., 500 දෝෂයක් ඇති කරයි.
1. PHP-FPM ක්රියාවලි සංචිත පරාමිතීන් සකසන්න
වින්යාසය භාවිතා කරන්නේ නම් dynamicමෙය සමහර වැඩ ක්රියාවලීන් පූර්ව-ආරම්භ කර ඉල්ලීම් පරිමාව අනුව ගතිකව සකස් කිරීමේ ක්රමයකි, ඉල්ලීම් පරිමාව හදිසියේම වැඩි වූ විට වේගයෙන් ප්රතිචාර දැක්විය හැක.
නිශ්චිත ප්රමාණයක තදබදයක් ඇති වෙබ් අඩවි සඳහා, එය භාවිතා කිරීම රෙකමදාරු කරනු ලැබේ pm = dynamicමක්නිසාද යත් එයට යම් ප්රමාණයක නිෂ්ක්රීය ක්රියාවලීන් පවත්වා ගත හැකි අතර ඉහළ සමගාමී කාලයකදී දෝෂ 500 ක් වළක්වා ගත හැකිය.
ප්රවේශ පරිමාව අතිශයින් අඩු වූ විට සහ මතක සම්පත් සීමිත වූ විට පමණක් එය භාවිතා කිරීම රෙකමදාරු කරනු ලැබේ. pm = ondemand සම්පත් ඉතිරි කර ගැනීමට.
යෝජනා කර ඇත්තේ ondemand, සහ ප්රශස්ත කරන්න pm.max_children සහ අනෙකුත් පරාමිතීන්:
pm = dynamic
pm.max_children = 16 ; 根据服务器资源调整,建议值:CPU 核心数 × 2
pm.start_servers = 4 ; 初始进程数,建议设为 max_children × 25%
pm.min_spare_servers = 2 ; 最小空闲进程数
pm.max_spare_servers = 7 ; 最大空闲进程数
pm.max_requests = 3000 ; 每个子进程处理完 3000 个请求后自动重启
pm.process_idle_timeout = 10s ; 空闲进程 10s 后自动退出
ඇයි මෙහෙම වෙනස් කරන්න හදන්නේ?
pm = dynamic: ඉල්ලුම නිසා ඇති විය හැකි ඉල්ලීම් බලා සිටීම වළක්වා ගැනීම සඳහා ක්රියාවලීන් වඩාත් නම්යශීලීව වෙන් කරන්න;pm.max_children = 16: ඉතා සුළු ක්රියාවලීන් නිසා ඇතිවන දෝෂ 500 ක් වැළැක්වීම;pm.start_servers = 5: මන්දගාමී ක්රියාවලි ආරම්භයෙන් වළකින්න;pm.max_requests = 3000:මතක කාන්දු වීම වැළැක්වීම, ක්රියාවලිය නිතිපතා ප්රතිචක්රීකරණය කරන්න.
2. දිගුකාලීන රැඳී සිටීම වැළැක්වීම සඳහා PHP ස්ක්රිප්ට් ක්රියාත්මක කිරීමේ කාලය සීමා කරන්න.
request_terminate_timeout = 30s ; 超过 30s 的 PHP 脚本自动终止
php_admin_value[memory_limit] = 128M ; 限制 PHP 进程最大内存占用
මෙය සමහරක් වළක්වා ගත හැකියවැඩිපුර CPU භාවිතා කරන PHP ස්ක්රිප්ට් මඟින් ඔබේ සේවාදායකය බිඳ දැමිය හැකිය..
සුරැකීමෙන් පසු, PHP ක්රියාවලිය නැවත ආරම්භ කරන්න:
sudo systemctl restart php8.3-fpmඕනෑම වේලාවක ප්රගතිය නිරීක්ෂණය කිරීමට PHP-FPM තත්ව නිරීක්ෂණය සක්රීය කරන්න.
PHP-FPM ක්රියාවලි අධීක්ෂණය සක්රීය කර ඕනෑම වේලාවක එය බලන්නවත්මන් ක්රියාකාරී ක්රියාවලි ගණන සහ ඉල්ලීම් පොරොත්තු තත්ත්වය, සේවාදායකය අධික ලෙස පැටවීම වැළැක්වීමට.
在 php-fpm.conf එකතු කරන ලද්දේ:
pm.status_path = /status
ඉන්පසු, Nginx වින්යාසය:
location /status {
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
allow 127.0.0.1;
deny all;
}
මේ ආකාරයෙන්, ඔබට පුළුවන් http://yourdomain.com/status PHP-FPM ක්රියාත්මක වන ආකාරය බලන්න!
ගැටළු ඉක්මනින් දෝශ නිරාකරණය කිරීම සඳහා PHP-FPM ලොග් ප්රශස්ත කරන්න.
在 php-fpm.conf වෙත එක් කරන්න:
php_admin_value[error_log] = /var/log/php-fpm/error.log
php_admin_value[log_errors] = On
php_admin_value[error_reporting] = E_ALL
slowlog = /var/log/php-fpm/slow.log
request_slowlog_timeout = 5s ; 执行超过 5s 的脚本记录到日志
මේ ආකාරයට, 500 දෝෂයක් ඇති වූ විට, ඔබට ලොගය කෙලින්ම නැරඹිය හැකිය:
tail -f /var/log/php-fpm/error.log
PHP දෝෂයක් වාර්තා කරන්නේ දැයි බලන්න, උදා. out of memory,script execution timeout 等
මතක කාන්දු වීම වැළැක්වීම සඳහා PHP-FPM නිතිපතා නැවත ආරම්භ කරන්න.
සමත් වීමට හැකි වේ cron දිගුකාලීන ක්රියාවලීන් ඇති වීම වැළැක්වීම සඳහා PHP-FPM නිතිපතා නැවත ආරම්භ කරන්නමතක කාන්දුවීම්.
crontab -e
සෑම දිනකම අලුයම 3 ට PHP-FPM ස්වයංක්රීයව නැවත ආරම්භ කිරීම සඳහා පහත කාලසටහන්ගත කාර්යය එක් කරන්න:
0 3 * * * /usr/sbin/service php8.3-fpm restart
ගැටලුව දිගටම පැවතුනොත් කුමක් කළ යුතුද? තවදුරටත් ප්රශස්තිකරණය!
ඔබ තවමත් ඉහත ප්රශස්තිකරණය අනුගමනය කරන්නේ නම්සමහර විට දෝෂ 500 ක් සිදු වේ, ඔබට පහත ප්රශස්තිකරණ සමඟ ඉදිරියට යා හැක:
1. PHP ක්රියාත්මක කිරීමේ කාර්යක්ෂමතාව වැඩි දියුණු කිරීම සඳහා OPcache සක්රීය කරන්න.
OPcache තවමත් සක්රීය කර නොමැති නම්, ඔබට එය මේ ආකාරයට ස්ථාපනය කළ හැකිය (උදාහරණයක් ලෙස Ubuntu භාවිතා කරමින්):
sudo apt install php8.3-opcache -y
ඉන්පසු සංස්කරණය කරන්න php.ini:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.validate_timestamps=1
බලපෑම? PHP පිටු ක්රියාත්මක කිරීමේ වේගය බෙහෙවින් වැඩි දියුණු කර ඇත!
2. Nginx වින්යාස ප්රශස්තිකරණය
Nginx ආශ්රිත පරාමිතීන් සාධාරණ බවට වග බලා ගන්න, උදා. fastcgi_read_timeout දිගු ක්රියාත්මක කිරීමේ කාලය හේතුවෙන් Nginx විසින් PHP ස්ක්රිප්ට් අවසන් කිරීම වළක්වා ගැනීම සඳහා එය සුදුසු පරිදි සකසන්න:
fastcgi_read_timeout 60s;
client_max_body_size 100M;
සාරාංශය: PHP-FPM ප්රශස්ත කරන්න, එවිට වෙබ් අඩවිය තවදුරටත් බිඳ වැටෙන්නේ නැත!
මෙම ප්රශස්තිකරණයෙන් පසු අප සිදු කර ඇති ගැලපීම් මොනවාද?
✅ PHP-FPM ක්රියාවලි සංචිතය ප්රශස්ත කිරීම,භාවිත ondemandසහ ප්රශස්ත කරන්න pm.max_children පරාමිතිය;
✅ PHP ස්ක්රිප්ට් ක්රියාත්මක කිරීමේ කාලය සීමා කිරීම, දිගුකාලීන CPU අල්ලා ගැනීම වැළැක්වීමට;
✅ PHP-FPM නිරීක්ෂණය සක්රීය කරන්න, ක්රියාවලි භාරය තත්ය කාලීනව බලන්න;
✅ PHP-FPM ලොග් ප්රශස්ත කිරීම, දෝෂ 500ක් ඉක්මනින් නිරාකරණය කරන්න;
✅ PHP-FPM නිතිපතා නැවත ආරම්භ කරන්න., මතක කාන්දු වීම වැළැක්වීම;
✅ OPcache සක්රීය කරන්න, PHP ක්රියාත්මක කිරීමේ කාර්යක්ෂමතාව වැඩි දියුණු කිරීම;
✅ Nginx වින්යාසය ප්රශස්ත කිරීම, කල් ඉකුත් වීමේ ගැටළු වළක්වා ගැනීමට.
මෙම ප්රශස්තිකරණයෙන් පසු, PHP-FPM භාරය බෙහෙවින් අඩු වන අතර වෙබ් අඩවි ක්රියාකාරිත්වය වඩාත් ස්ථායී වනු ඇත! 🔥 බ්රාහ්මණී
දැන් ගිහින් උත්සාහ කරන්න! 💪🚀
Hope Chen Weiliang බ්ලොග් ( https://www.chenweiliang.com/ ) බෙදා ගත්තා "HestiaCP PHP-FPM භාරය ඉතා ඉහළද? ගතික වෙබ් පිටුව 500 දෝෂයක්ද? මෙම ප්රශස්තිකරණය වහාම ක්රියාත්මක වනු ඇත! ”, එය ඔබට ප්රයෝජනවත් විය හැකිය.
මෙම ලිපියේ සබැඳිය බෙදා ගැනීමට සාදරයෙන් පිළිගනිමු:https://www.chenweiliang.com/cwl-32512.html
තවත් සැඟවුණු උපක්රම අගුළු ඇරීමට🔑, අපගේ ටෙලිග්රාම් නාලිකාවට සම්බන්ධ වීමට සාදරයෙන් පිළිගනිමු!
ඔබ එයට කැමති නම් Share කර Like කරන්න! ඔබගේ කොටස් සහ කැමැත්ත අපගේ අඛණ්ඩ අභිප්රේරණයයි!