HestiaCP PHP-FPM ili ndi katundu wolemetsa? Cholakwika champhamvu patsamba 500? Kukhathamiritsa uku kudzagwira ntchito nthawi yomweyo!

Kodi munakumanapo ndi vutoli?Kufikira pawebusayiti kudachepa mwadzidzidzi, kapena kudapangitsa kuti pakhale cholakwika cha 500 Pambuyo poyambitsanso PHP-FPM, idabwerera mwakale., koma vuto limabweranso pakapita nthawi? Izi ndi zokhumudwitsa kwambiri!

Chifukwa chiyani izi zikuchitika?Ndipotu, izi zimakhala chonchoPhukusi la ndondomeko ya PHP-FPM silinakonzedwe bwino, kapena zothandizira za seva ndizosakwanira.chifukwa. Lero, tidzakonza bwino HestiaCP PHP-FPM pansi pa hood imapangitsa tsamba lawebusayiti kukhala lokhazikika ngati mwala!

Chifukwa chachikulu chomwe PHP-FPM yadzaza

PHP-FPM ndiProcess Manager, yomwe ili ndi udindo wosamalira zopempha zamphamvu. Ngati kasinthidwe sikuli koyenera, kungayambitse:

  • Zida za seva zatha, kuchititsa PHP-FPM kulephera kuyankha zopempha zatsopano panthawi yake;
  • Njira zochepa kwambiri, pamene magalimoto akuwonjezeka mwadzidzidzi, sangathe kukonzedwa panthawi yake;
  • Kugwiritsa ntchito ndikokwera kwambiri, kupangitsa kuchuluka kwa CPU kuphulika.

HestiaCP PHP-FPM ili ndi katundu wolemetsa? Cholakwika champhamvu patsamba 500? Kukhathamiritsa uku kudzagwira ntchito nthawi yomweyo!

Kodi mungadziwe bwanji ngati PHP-FPM yadzaza?

akhoza kugwiritsa ntchito top Kapena htop Lamulo kuti muwone CPU ndi kugwiritsa ntchito kukumbukira:

top -c

Mukawona ndondomeko yofanana ndi yotsatirayi, zikutanthauza kuti PHP-FPM ikugwira ntchito kwambiri:

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

Mukuwona momwe izi zikutenga 70% ya CPU? Izi zikachitika nthawi zambiri, PHP-FPM yanu Payenera kukhala vuto!

Ndiye, tingakonzekere bwanji kasinthidwe ka PHP-FPM kuti seva isadzalemedwenso?

Kukhathamiritsa kwa dziwe la PHP-FPM (kusintha kwapakati)

Choyamba, tsegulani php-fpm Mafayilo Osintha:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *Sinthani ku mtundu wanu wa PHP, monga PHP8.3, ndikusintha kukhala izi:/etc/php/8.3/fpm/pool.d/www.conf

Funsani mtundu wa PHP wokhazikitsidwa ndi HestiaCP

v-list-web-domain user domain.com

E.g:

v-list-web-domain abc chenweiliang.com

Muzotulutsa, muwona chinthu chonga:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.3

Izi zikutanthauza kuti tsambalo limagwiritsa ntchito PHP 8.3.

Tiyeni tiwone masinthidwe anu a 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

Mutha kuwona kuti pm Zomwe zimagwiritsidwa ntchito ndi ondemand,Ngakhale zitha kuchepetsa kugwiritsidwa ntchito kwazinthu panthawi yopanda ntchito, magalimoto akamawonjezeka mwadzidzidzi, njirayi singathe kuyankha munthawi yake., kupangitsa kuti 500 zolakwika.

1. Sinthani magawo a pool a PHP-FPM

Ngati configuration ikugwiritsa ntchito dynamicIyi ndi njira yoyambira njira zina zogwirira ntchito ndikuzisintha mwamphamvu molingana ndi voliyumu yopempha, yomwe imatha kuyankha mwachangu pomwe voliyumu yopempha ikuwonjezeka mwadzidzidzi.

Kwa mawebusayiti omwe ali ndi kuchuluka kwa magalimoto, tikulimbikitsidwa kugwiritsa ntchito pm = dynamicChifukwa imatha kusunga njira zina zopanda pake ndikupewa zolakwika za 500 panthawi yolumikizana kwambiri.

Ndikofunikira kuti mugwiritse ntchito pokhapokha ngati voliyumu yofikira ili yotsika kwambiri ndipo zokumbukira zili zolimba. pm = ondemand Kusunga zothandizira.

Analimbikitsa ondemand, ndi kukhathamiritsa pm.max_children Ndi magawo ena:

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 后自动退出

Chifukwa chiyani mukufuna kusintha chonchi?

  • pm = dynamic: Perekani njira momasuka kuti mupewe kudikirira komwe kungabwere chifukwa chofuna;
  • pm.max_children = 16: Pewani zolakwika za 500 chifukwa cha njira zochepa;
  • pm.start_servers = 5: Pewani pang'onopang'ono ndondomeko poyambira;
  • pm.max_requests = 3000:Kuteteza kukumbukira kutayikira, konzanso ndondomekoyi nthawi zonse.

2. Chepetsani nthawi yoperekera zolemba za PHP kuti mupewe kukhalapo kwanthawi yayitali

request_terminate_timeout = 30s  ; 超过 30s 的 PHP 脚本自动终止
php_admin_value[memory_limit] = 128M  ; 限制 PHP 进程最大内存占用

Izi zingalepheretse enaZolemba za PHP zomwe zimagwiritsa ntchito CPU zambiri zimatha kutsitsa seva yanu.

Mukasunga, yambitsaninso njira ya PHP:

sudo systemctl restart php8.3-fpm

Yambitsani kuwunika kwa mawonekedwe a PHP-FPM kuti muzitha kuyang'anira momwe zikuyendera nthawi iliyonse

Yambitsani kuyang'anira ndondomeko ya PHP-FPM ndikuyiwona nthawi iliyonseNambala yaposachedwa ya njira zomwe zikugwira ntchito ndikufunsa momwe mukudikirira, kupewa kuchuluka kwa seva.

Mwa php-fpm.conf Zowonjezedwa mu:

pm.status_path = /status

Kenako, kasinthidwe ka 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;
}

Mwa njira iyi, mukhoza http://yourdomain.com/status Onani PHP-FPM ikugwira ntchito!

Konzani zipika za PHP-FPM kuti muthetse mavuto mwachangu

Mwa php-fpm.conf Onjezani ku:

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 的脚本记录到日志

Mwanjira iyi, nthawi iliyonse cholakwika cha 500 chikachitika, mutha kuwona chipikacho:

tail -f /var/log/php-fpm/error.log

Onani ngati PHP ikunena zolakwika, monga out of memory,script execution timeout Yembekezani.

Yambitsaninso PHP-FPM pafupipafupi kuti mupewe kutayikira kwa kukumbukira

wokhoza kudutsa cron Yambitsaninso PHP-FPM pafupipafupi kuti mupewe kuchititsa kwanthawi yayitaliMemory Leaks.

crontab -e

Onjezani ntchito yotsatirayi kuti muyambitsenso PHP-FPM nthawi ya 3 am tsiku lililonse:

0 3 * * * /usr/sbin/service php8.3-fpm restart

Nanga bwanji ngati vutolo likupitirirabe? Kukhathamiritsa kwina!

Ngati mutsatirabe kukhathamiritsa pamwambaNthawi zina zolakwika 500 zimachitika, mutha kupitiriza ndi kukhathamiritsa zotsatirazi:

1. Yambitsani OPcache kuwongolera magwiridwe antchito a PHP

Ngati OPcache sinayatsidwebe, mutha kuyiyika motere (pogwiritsa ntchito Ubuntu monga chitsanzo):

sudo apt install php8.3-opcache -y

Kenako sinthani php.ini:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.validate_timestamps=1

Zotsatira zake? Kuthamanga kwa tsamba la PHP kwasinthidwa kwambiri!

2. Kusintha kwa Nginx kasinthidwe

Onetsetsani kuti magawo okhudzana ndi Nginx ndi omveka, monga fastcgi_read_timeout Sinthani moyenera kuti mupewe zolemba za PHP kuthetsedwa ndi Nginx chifukwa cha nthawi yayitali yopha:

fastcgi_read_timeout 60s;
client_max_body_size 100M;

Mwachidule: Konzani PHP-FPM ndipo tsambalo silidzawonongekanso!

Kodi tapanga zosintha zotani pambuyo pa kukhathamiritsa kumeneku?

✅ Kukonza dziwe la PHP-FPM, gwiritsani ondemandNdipo konzekerani pm.max_children chizindikiro;
Kuchepetsa nthawi yoperekera zolemba za PHP, kuteteza CPU ntchito yaitali;
Yambitsani kuwunika kwa PHP-FPM, onani ndondomeko katundu mu nthawi yeniyeni;
Konzani zipika za PHP-FPM, sinthani mwachangu zolakwika 500;
Yambitsaninso PHP-FPM pafupipafupi, kuteteza kukumbukira kutayikira;
Yambitsani OPcache, kukonza magwiridwe antchito a PHP;
Kukhathamiritsa kwa Nginx Configuration, kupeŵa mavuto otha.

Pambuyo pa kukhathamiritsa uku, katundu wa PHP-FPM adzachepetsedwa kwambiri ndipo ntchito ya webusaitiyi idzakhala yokhazikika! 🔥

Pitani mukayese tsopano! 💪🚀

发表 评论

Imelo yanu sisindikizidwa. Minda yofunikira imagwiritsidwa ntchito * Chizindikiro

Pitani pamwamba