HestiaCP PHP-FPM భారీ భారంలో ఉందా? డైనమిక్ వెబ్ పేజీ 500 ఎర్రర్? ఈ ఆప్టిమైజేషన్ వెంటనే అమలులోకి వస్తుంది!

ఆర్టికల్ డైరెక్టరీ

మీరు ఎప్పుడైనా ఈ పరిస్థితిని ఎదుర్కొన్నారా?వెబ్‌సైట్ యాక్సెస్ అకస్మాత్తుగా నెమ్మదించింది లేదా 500 ఎర్రర్‌కు దారితీసింది. PHP-FPMని పునఃప్రారంభించిన తర్వాత, అది సాధారణ స్థితికి చేరుకుంది., కానీ కొంతకాలం తర్వాత సమస్య మళ్లీ వస్తుందా? ఇది చాలా నిరాశపరిచింది!

ఇది ఎందుకు జరుగుతోంది?నిజానికి, ఇది సాధారణంగాPHP-FPM ప్రాసెస్ పూల్ సరిగ్గా కాన్ఫిగర్ చేయబడలేదు లేదా సర్వర్ వనరులు సరిపోవు.వలన కలుగుతుంది. ఈరోజు, మనం పూర్తిగా ఆప్టిమైజ్ చేస్తాము హెస్టియాసిపి PHP-FPM అనే అధునాతన వ్యవస్థ వెబ్‌సైట్‌ను రాతిలా స్థిరంగా ఉంచుతుంది!

PHP-FPM ఓవర్‌లోడ్ కావడానికి ప్రధాన కారణం

PHP-FPM అనేదిప్రాసెస్ మేనేజర్, ఇది డైనమిక్ అభ్యర్థనలను నిర్వహించడానికి బాధ్యత వహిస్తుంది. కాన్ఫిగరేషన్ సరైనది కాకపోతే, అది దీనికి దారితీయవచ్చు:

  • సర్వర్ వనరులు అయిపోయాయి., దీనివల్ల PHP-FPM కొత్త అభ్యర్థనలకు సకాలంలో స్పందించలేకపోతుంది;
  • చాలా తక్కువ ప్రక్రియలు, ట్రాఫిక్ అకస్మాత్తుగా పెరిగినప్పుడు, దానిని సకాలంలో ప్రాసెస్ చేయలేము;
  • ప్రక్రియ వినియోగం చాలా ఎక్కువగా ఉంది, దీనివల్ల CPU లోడ్ పేలిపోతుంది.

HestiaCP PHP-FPM భారీ భారంలో ఉందా? డైనమిక్ వెబ్ పేజీ 500 ఎర్రర్? ఈ ఆప్టిమైజేషన్ వెంటనే అమలులోకి వస్తుంది!

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
  • *మీ PHP వెర్షన్‌కి మార్చండి, ఉదాహరణకు 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

దీని అర్థం సైట్ ఉపయోగిస్తుంది 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 ఎర్రర్ వస్తుంది.

www.conf: సిస్టమ్ యొక్క అంతర్నిర్మిత "సార్వత్రిక వనరుల సముదాయం"

PHP-FPMను ఇన్‌స్టాల్ చేసిన తర్వాత, సిస్టమ్ మీకు స్వయంచాలకంగా అందిస్తుంది... www.conf పత్రం.
దానిస్థానంఇది చాలా సులభం—ఇది కేవలం ఒక డిఫాల్ట్ ప్రాసెస్ పూల్, ఇది ఎలాంటి అదనపు సెటప్ లేకుండానే పనిచేస్తుంది, సాధారణంగా దీనికి జతచేయబడి ఉంటుంది... www-డేటా వినియోగదారు డౌన్‌లోడ్.

ఈ రకమైన పూల్ ప్రత్యేకంగా సింగిల్-సైట్ పరిసరాలకు అనుకూలంగా ఉంటుంది: కాన్ఫిగరేషన్ తేలికైనది, మరియు పారామీటర్లన్నీ జెనరిక్ టెంప్లేట్‌లు, ఉదాహరణకు:

user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
pm.max_children = 5

మీరు ఒకే సైట్‌ను హోస్ట్ చేస్తే, ఎలాంటి అదనపు ఇబ్బంది లేకుండా దాన్ని నేరుగా, నమ్మకంగా ఉపయోగించుకోవచ్చు.

etUFO.org.conf: కస్టమ్ పూల్

మీరు ఒకేసారి అనేక సైట్‌లను నిర్వహిస్తున్నప్పుడు, అందరినీ ఒకే చోట ఇరికించి ఉంచలేరు.
ఈ దశలో, HestiaCP ప్రతి సైట్‌కు స్వయంచాలకంగా ఒక ప్రత్యేక పూల్‌ను సృష్టిస్తుంది, ఉదాహరణకు... etUFO.org.confడొమైన్ పేర్ల కోసం ప్రత్యేకించబడింది etufo.org 服务.

సాధారణంగా ఆడే విధానం:

  • వినియోగదారులను మరియు సమూహాలను మార్చండి:user = etufo,group = etufo
  • స్వతంత్ర పర్యవేక్షణ:listen = /run/php/etufo.sock
  • ప్రాసెస్‌ల సంఖ్యను సర్దుబాటు చేయడం వలన అధిక ఏకకాలికత కింద కూడా పటిష్టమైన స్థిరత్వం లభిస్తుంది.
  • వేర్వేరు లాగ్ ఫైల్స్ సమస్య పరిష్కారాన్ని మరింత స్పష్టంగా చేస్తాయి.

ప్రయోజనాలు స్పష్టంగా ఉన్నాయి:సురక్షితమైన ఏకాంతవాసంఒక సైట్ రాజీపడినా కూడా, ఇతర సైట్‌లు ప్రభావితం కావు.

dummy.conf: డమ్మీ ఫైల్

dummy.conf ఇవి సాధారణంగా సిస్టమ్ అందించే ఉదాహరణలు లేదా టెంప్లేట్లు.
మీరు దాన్ని మాన్యువల్‌గా సవరించి, ఎనేబుల్ చేస్తే తప్ప అది నిజానికి పనిచేయదు.
కొత్త పూల్ కాన్ఫిగరేషన్‌ను ఎలా వ్రాయాలో చెప్పే ఒక "ఆపరేషన్ మాన్యువల్" లాంటిది దీని ప్రాముఖ్యత.

పూల్‌ను ఎందుకు విభజించాలి?

  • 安全 性అనుమతులలో వైరుధ్యాలను నివారించడానికి వేర్వేరు సైట్‌లకు వేర్వేరు వినియోగదారులను ఉపయోగించండి.
  • 性能优化ప్రతి పూల్ కోసం ప్రాసెస్‌ల సంఖ్యను విడివిడిగా సర్దుబాటు చేయవచ్చు, దీనివల్ల ట్రాఫిక్ డిమాండ్‌ను బట్టి అనువైన మార్పులు చేసుకోవడానికి వీలవుతుంది.
  • విడిగా ఉంచడంలాగ్‌లు, లోపాలు మరియు లిజనింగ్ అడ్రస్‌లు అన్నీ వేరుగా ఉండటం వల్ల ట్రబుల్షూటింగ్ సులభతరం అవుతుంది.

ఉదాహరణకు: కూడా www.conf అది కూలిపోయింది.etufo.org.conf ఇది యధావిధిగా పనిచేస్తూనే ఉంటుంది మరియు మొత్తం సర్వర్‌ను నిలిపివేయదు.

实际场景

  • సింగిల్-సైట్ సర్వర్www.conf అయితే చాలు.
  • మల్టీసైట్ సర్వర్ప్రతి సైట్‌కు etufo.org.conf వంటి దాని స్వంత స్వతంత్ర .conf ఫైల్ ఉంటుంది.
  • dummy.confకేవలం సూచన కోసం మాత్రమే, సిఫార్సు చేయబడలేదు.

కాన్ఫిగరేషన్ పోలిక

www.conf (డిఫాల్ట్ పూల్)

[www]
user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
pm = dynamic
pm.max_children = 5

etufo.org.conf (కస్టమ్ పూల్)

[etufo.org]
user = etufo
group = etufo
listen = /run/php/etufo.sock
pm = dynamic
pm.max_children = 20
access.log = /var/log/php-fpm/etufo.access.log

ప్రధాన వ్యత్యాసం ఏమిటంటే:వినియోగదారు గుర్తింపు, వినే చిరునామా, ప్రక్రియల సంఖ్య.

1. PHP-FPM ప్రాసెస్ పూల్ పారామితులను సర్దుబాటు చేయండి

కాన్ఫిగరేషన్ ఉపయోగిస్తే dynamicఇది కొన్ని పని ప్రక్రియలను ముందస్తుగా ప్రారంభించి, అభ్యర్థన పరిమాణం ప్రకారం వాటిని డైనమిక్‌గా సర్దుబాటు చేసే పద్ధతి, ఇది అభ్యర్థన పరిమాణం అకస్మాత్తుగా పెరిగినప్పుడు వేగంగా స్పందించగలదు.

నిర్దిష్ట మొత్తంలో ట్రాఫిక్ ఉన్న వెబ్‌సైట్‌ల కోసం, దీనిని ఉపయోగించమని సిఫార్సు చేయబడింది pm = dynamicఎందుకంటే ఇది అధిక సమన్వయం సమయంలో కొంత మొత్తంలో నిష్క్రియ ప్రక్రియలను నిర్వహించగలదు మరియు 500 లోపాలను నివారించగలదు.

యాక్సెస్ వాల్యూమ్ చాలా తక్కువగా ఉన్నప్పుడు మరియు మెమరీ వనరులు తక్కువగా ఉన్నప్పుడు మాత్రమే దీన్ని ఉపయోగించమని సిఫార్సు చేయబడింది. pm = ondemand వనరులను ఆదా చేయడానికి.

సూచించబడింది dynamic, మరియు ఆప్టిమైజ్ చేయండి 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 ఇంకా ప్రారంభించబడకపోతే, మీరు దానిని ఇలా ఇన్‌స్టాల్ చేయవచ్చు (ఉదాహరణకు ఉబుంటును ఉపయోగించి):

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 లోడ్ బాగా తగ్గుతుంది మరియు వెబ్‌సైట్ ఆపరేషన్ మరింత స్థిరంగా ఉంటుంది! 🔥 స్కైస్

ఇప్పుడే ప్రయత్నించు! 💪🚀 💪🚀 తెలుగు

హోప్ చెన్ వీలియాంగ్ బ్లాగ్ ( https://www.chenweiliang.com/ ) షేర్డ్ "HestiaCP PHP-FPM లోడ్ చాలా ఎక్కువగా ఉందా? డైనమిక్ వెబ్ పేజీ 500 ఎర్రర్? ఈ ఆప్టిమైజేషన్ వెంటనే అమలులోకి వస్తుంది! ”, ఇది మీకు ఉపయోగకరంగా ఉండవచ్చు.

ఈ కథనం యొక్క లింక్‌ను భాగస్వామ్యం చేయడానికి స్వాగతం:https://www.chenweiliang.com/cwl-32512.html

మరిన్ని దాచిన ఉపాయాలను అన్‌లాక్ చేయడానికి🔑, మా టెలిగ్రామ్ ఛానెల్‌లో చేరడానికి స్వాగతం!

మీకు నచ్చితే షేర్ చేయండి మరియు లైక్ చేయండి! మీ షేర్లు మరియు ఇష్టాలు మా నిరంతర ప్రేరణ!

 

发表 评论

మీ ఇమెయిల్ చిరునామా ప్రచురించబడదు. అవసరమైన ఫీల్డ్‌లు ఉపయోగించబడతాయి * లేబుల్

పైకి స్క్రోల్