የአንቀጽ ማውጫ
- 1 PHP-FPM ከመጠን በላይ የተጫነበት ዋናው ምክንያት
- 2 የ PHP-FPM ሂደት ገንዳ ማመቻቸት (የዋና መለኪያ ማስተካከያ)
- 3 የሂደቱን በማንኛውም ጊዜ ለመከታተል የPHP-FPM ሁኔታ ክትትልን ያንቁ
- 4 ችግሮችን በፍጥነት ለመፍታት የPHP-FPM ምዝግብ ማስታወሻዎችን ያሳድጉ
- 5 የማህደረ ትውስታ ፍሳሾችን ለመከላከል PHP-FPMን በመደበኛነት እንደገና ያስጀምሩ
- 6 ችግሩ ከቀጠለስ? ተጨማሪ ማመቻቸት!
- 7 ማጠቃለያ፡ PHP-FPMን ያሻሽሉ እና ድር ጣቢያው ከአሁን በኋላ አይበላሽም!
ይህን ሁኔታ አጋጥሞህ ያውቃል?የድረ-ገጽ መዳረሻ በድንገት ቀነሰ ወይም 500 ስህተት አስከትሏል PHP-FPM እንደገና ከጀመረ በኋላ ወደ መደበኛው ተመለሰ።ግን ችግሩ ከተወሰነ ጊዜ በኋላ እንደገና ይታያል? ይህ በጣም ተስፋ አስቆራጭ ነው!
ይህ ለምን እየሆነ ነው?እንደ እውነቱ ከሆነ, ይህ አብዛኛውን ጊዜ ነውየPHP-FPM ሂደት ገንዳ በትክክል አልተዋቀረም ወይም የአገልጋዩ ሀብቶች በቂ አይደሉም።ምክንያት. ዛሬ, እኛ በደንብ እናሻሽላለን HestiaCP ፒኤችፒ-ኤፍፒኤም በመከለያ ስር ድህረ ገጹን እንደ አለት የተረጋጋ ያደርገዋል!
PHP-FPM ከመጠን በላይ የተጫነበት ዋናው ምክንያት
ፒኤችፒ-ኤፍፒኤም የሂደት አስተዳዳሪተለዋዋጭ ጥያቄዎችን የማስተናገድ ኃላፊነት ያለበት። አወቃቀሩ ምክንያታዊ ካልሆነ ወደሚከተለው ሊያመራ ይችላል፡-
- የአገልጋይ ሀብቶች ተሟጠዋልፒኤችፒ-ኤፍፒኤም ለአዳዲስ ጥያቄዎች በወቅቱ ምላሽ መስጠት እንዳይችል በማድረግ፣
- በጣም ጥቂት ሂደቶች, ትራፊክ በድንገት ሲጨምር, በጊዜ ሂደት ሊሰራ አይችልም;
- የሂደቱ አጠቃቀም በጣም ከፍተኛ ነው።የሲፒዩ ጭነት እንዲፈነዳ ያደርጋል።

PHP-FPM ከመጠን በላይ መጫኑን እንዴት ማወቅ ይቻላል?
መጠቀም ይችላል። top ወይም ፡፡ htop ሲፒዩ እና የማህደረ ትውስታ አጠቃቀምን ለማየት ትእዛዝ፡-
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
እነዚህ ሂደቶች ከ70% በላይ ሲፒዩ እንዴት እየወሰዱ እንደሆነ ይመልከቱ? ይህ ብዙ ጊዜ የሚከሰት ከሆነ፣ የእርስዎ PHP-FPM ችግር መኖር አለበት።!
ስለዚህ፣ አገልጋዩ ከመጠን በላይ እንዳይጫን የPHP-FPM ውቅርን እንዴት ማሳደግ እንችላለን?
የ PHP-FPM ሂደት ገንዳ ማመቻቸት (የዋና መለኪያ ማስተካከያ)
መጀመሪያ ይክፈቱ php-fpm የማዋቀር ፋይሎች፡
sudo nano /etc/php/*/fpm/pool.d/www.conf- *እንደ PHP8.3 ወደ የእርስዎ ፒኤችፒ ስሪት ይቀይሩ እና ወደዚህ ይቀይሩት፡
/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
ይህ ማለት ድህረ ገጹ ይጠቀማል ማለት ነው። ፒኤችፒ 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 进程最大内存占用
ይህ አንዳንዶቹን መከላከል ይችላልበጣም ብዙ ሲፒዩ የሚጠቀሙ የ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
ፒኤችፒ ስህተት እንደዘገበው ይመልከቱ 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 ገና ካልነቃ እንደዚህ ሊጭኑት ይችላሉ (ኡቡንቱን እንደ ምሳሌ በመጠቀም)
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 በረጅም ጊዜ የማስፈጸሚያ ጊዜ ምክንያት የPHP ስክሪፕቶች በNginx እንዳይቋረጡ በትክክል ያስተካክሉት፡
fastcgi_read_timeout 60s;
client_max_body_size 100M;
ማጠቃለያ፡ PHP-FPMን ያሻሽሉ እና ድር ጣቢያው ከአሁን በኋላ አይበላሽም!
ከዚህ ማመቻቸት በኋላ ምን ማስተካከያ አድርገናል?
✅ የ PHP-FPM ሂደት ገንዳን ማመቻቸት, ይጠቀሙ ondemandእና ያመቻቹ pm.max_children መለኪያ;
✅ የ PHP ስክሪፕቶች የሚፈፀሙበትን ጊዜ መገደብየረጅም ጊዜ የሲፒዩ ሥራን ለመከላከል;
✅ የ PHP-FPM ክትትልን አንቃ, የሂደቱን ጭነት በእውነተኛ ጊዜ ይመልከቱ;
✅ የ PHP-FPM ምዝግብ ማስታወሻዎችን ማመቻቸት, 500 ስህተቶችን በፍጥነት መፍታት;
✅ PHP-FPM በመደበኛነት እንደገና ያስጀምሩ, የማስታወስ ፍሳሾችን መከላከል;
✅ OPcache ን አንቃየ PHP አፈፃፀምን ማሻሻል;
✅ የNginx ውቅረትን ማመቻቸት, የእረፍት ጊዜ ችግሮችን ለማስወገድ.
ከዚህ ማመቻቸት በኋላ የPHP-FPM ጭነት በእጅጉ ይቀንሳል እና የድር ጣቢያው አሠራር የበለጠ የተረጋጋ ይሆናል! 🔥
አሁን ይሞክሩት! 💪🚀
ተስፋ Chen Weiliang ብሎግ ( https://www.chenweiliang.com/ ) የተጋራ "HestiaCP PHP-FPM ጭነት በጣም ከፍተኛ ነው? ተለዋዋጭ ድረ-ገጽ 500 ስህተት? ይህ ማመቻቸት ወዲያውኑ ተግባራዊ ይሆናል! ”፣ ለእርስዎ ጠቃሚ ሊሆን ይችላል።
እንኳን በደህና መጡ የዚህን ጽሁፍ ማገናኛ ለማጋራት፡-https://www.chenweiliang.com/cwl-32512.html
ተጨማሪ ድብቅ ዘዴዎችን ለመክፈት የቴሌግራም ቻናላችንን እንኳን በደህና መጡ።
ከወደዳችሁት ሼር እና ላይክ አድርጉ! የእርስዎ ማጋራቶች እና መውደዶች የእኛ ቀጣይ ተነሳሽነት ናቸው!