HestiaCP PHP-FPM aya dina beban beurat? Kasalahan halaman wéb dinamis 500? optimasi ieu bakal mawa pangaruh langsung!

Naha anjeun kantos ngalaman kaayaan ieu?Aksés halaman wéb dumadakan ngalambatkeun, atanapi malah nyababkeun kasalahan 500 Saatos ngamimitian deui PHP-FPM, éta normal deui., tapi masalahna muncul deui saatos sababaraha waktos? Ieu jadi frustrating!

Naha ieu kajantenan?Kanyataanna, ieu biasanaThe PHP-FPM prosés kolam renang teu ngonpigurasi leres, atawa sumberdaya server teu cukup.disababkeun ku. Dinten, urang bakal tuntas ngaoptimalkeun HestiaCP PHP-FPM dipasang ngajadikeun ramatloka sakumaha stabil sakumaha batu a!

Alesan inti naha PHP-FPM overloaded

PHP-FPM mangrupaProsés Manajer, nu tanggung jawab pikeun nanganan requests dinamis. Upami konfigurasi henteu wajar, éta tiasa nyababkeun:

  • sumberdaya server béak, ngabalukarkeun PHP-FPM teu bisa ngabales requests anyar dina ragam timely;
  • Saeutik teuing prosés, lamun lalulintas dumadakan naek, teu bisa diolah dina waktu;
  • Pamakéan prosés teuing tinggi, ngabalukarkeun beban CPU ngabeledug.

HestiaCP PHP-FPM aya dina beban beurat? Kasalahan halaman wéb dinamis 500? optimasi ieu bakal mawa pangaruh langsung!

Kumaha carana ngabejaan lamun PHP-FPM overloaded?

tiasa anggo top Atanapi htop Paréntah pikeun ningali CPU sareng pamakean mémori:

top -c

Upami anjeun ningali inpormasi prosés anu sami sareng ieu, éta hartosna PHP-FPM dijalankeun dina beban anu luhur:

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

Tingali kumaha prosés ieu nyandak langkung ti 70% tina CPU? Upami ieu sering kajadian, PHP-FPM anjeun Pasti aya masalah!

Janten, kumaha urang tiasa ngaoptimalkeun konfigurasi PHP-FPM supados server henteu kabeuratan deui?

PHP-FPM prosés pool optimasi (core parameter adjustment)

Kahiji, buka php-fpm File Konfigurasi:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *Robah kana versi PHP anjeun, sapertos PHP8.3, sareng robih janten kieu:/etc/php/8.3/fpm/pool.d/www.conf

Patarosan versi PHP diatur ku HestiaCP

v-list-web-domain user domain.com

É.g:

v-list-web-domain abc chenweiliang.com

Dina output, anjeun bakal nempo hiji hal kawas:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.3

Ieu ngandung harti yén ramatloka ngagunakeun PHP 8.3.

Hayu urang tingali konfigurasi PHP-FPM anjeun:

[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

Anjeun tiasa ningali éta anjeun pm Anu dipaké nyaéta ondemand,Sanaos tiasa ngirangan pamakean sumberdaya salami waktos dianggurkeun, nalika lalu lintas ujug-ujug ningkat, prosésna moal tiasa ngaréspon dina waktosna., hasilna kasalahan 500.

1. Saluyukeun parameter kolam renang prosés PHP-FPM

Lamun konfigurasi migunakeun dynamicIeu mangrupikeun padika pikeun ngamimitian sababaraha prosés kerja sareng nyaluyukeun sacara dinamis dumasar kana volume pamundut, anu tiasa ngabales langkung gancang nalika volume pamundut ujug-ujug ningkat.

Pikeun situs wéb kalayan jumlah lalu lintas anu tangtu, disarankeun pikeun dianggo pm = dynamicSabab bisa ngajaga jumlah nu tangtu prosés dianggurkeun sarta nyingkahan 500 kasalahan salila concurrency tinggi.

Disarankeun make eta ngan lamun volume aksés pisan low jeung sumberdaya memori ketat. pm = ondemand Pikeun nyimpen sumberdaya.

Disarankeun ka ondemand, sarta ngaoptimalkeun pm.max_children Jeung parameter séjén:

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

Naha anjeun hoyong ngarobih sapertos kieu?

  • pm = dynamic: Alokasi prosés leuwih fleksibel pikeun nyegah pamundut ngantosan nu bisa disababkeun ku ondemand;
  • pm.max_children = 16: Nyegah 500 kasalahan disababkeun ku saeutik teuing prosés;
  • pm.start_servers = 5: Hindarkeun ngamimitian prosés lambat;
  • pm.max_requests = 3000:Nyegah bocor mémori, ngadaur mulangkeun prosés rutin.

2. Ngawatesan waktu palaksanaan skrip PHP pikeun nyegah occupancy jangka panjang

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

Ieu bisa nyegah sababarahaAksara PHP nu make teuing CPU bisa mawa handap server Anjeun.

Saatos nyimpen, balikan deui prosés PHP:

sudo systemctl restart php8.3-fpm

Aktipkeun ngawaskeun status PHP-FPM pikeun ngalacak kamajuan iraha waé

Aktipkeun ngawaskeun prosés PHP-FPM sareng ningali iraha waéJumlah prosés aktip ayeuna sareng nyuhunkeun status ngantosan, pikeun nyegah overloading server.

php-fpm.conf Ditambahkeun dina:

pm.status_path = /status

Lajeng, konfigurasi 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;
}

Ku cara kieu, anjeun tiasa http://yourdomain.com/status Pariksa PHP-FPM dina aksi!

Optimalkeun log PHP-FPM pikeun ngabéréskeun masalah gancang

php-fpm.conf Tambihkeun kana:

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

Ku cara kieu, iraha waé aya kasalahan 500, anjeun tiasa langsung ningali log:

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

Tingali upami PHP ngalaporkeun kasalahan, sapertos out of memory,script execution timeout Antosan.

Balikan deui PHP-FPM rutin pikeun nyegah bocor memori

sanggup lulus cron Balikan deui PHP-FPM sacara teratur pikeun nyegah prosés anu lami-lami nyababkeunBocor memori.

crontab -e

Tambihkeun tugas anu dijadwalkeun di handap ieu pikeun otomatis balikan deui PHP-FPM jam 3 énjing unggal dinten:

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

Kumaha upami masalahna tetep? Optimasi salajengna!

Upami anjeun masih nuturkeun optimasi di luhurAya kalana 500 kasalahan lumangsung, Anjeun bisa neruskeun kalawan optimizations handap:

1. Aktipkeun OPcache pikeun ngaronjatkeun efisiensi palaksanaan PHP

Upami OPcache teu acan diaktipkeun, anjeun tiasa pasang sapertos kieu (nganggo Ubuntu sabagé conto):

sudo apt install php8.3-opcache -y

Teras édit php.ini:

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

Pangaruh? Laju palaksanaan halaman PHP parantos ningkat pisan!

2. Optimasi konfigurasi Nginx

Pastikeun yén parameter patali Nginx lumrah, sapertos fastcgi_read_timeout Saluyukeun éta leres pikeun nyegah skrip PHP ditungtungan ku Nginx kusabab waktos palaksanaan anu panjang:

fastcgi_read_timeout 60s;
client_max_body_size 100M;

Ringkesan: Optimalkeun PHP-FPM sareng halaman wéb moal deui ngadat!

Pangaluyuan naon anu urang lakukeun saatos optimasi ieu?

✅ Ngaoptimalkeun kolam renang prosés PHP-FPM, anggo ondemandJeung ngaoptimalkeun pm.max_children parameter;
Ngawatesan waktos palaksanaan skrip PHP, pikeun nyegah penjajahan CPU jangka panjang;
Aktipkeun ngawas PHP-FPM, tingali beban prosés sacara real waktos;
Ngaoptimalkeun log PHP-FPM, gancang troubleshoot 500 kasalahan;
Balikan deui PHP-FPM rutin, nyegah bocor memori;
Aktipkeun OPcache, ningkatkeun efisiensi palaksanaan PHP;
Ngaoptimalkeun Konfigurasi Nginx, pikeun ngahindarkeun masalah timeout.

Saatos optimasi ieu, beban PHP-FPM bakal dikirangan pisan sareng operasi halaman wéb bakal langkung stabil! 🔥

Coba ayeuna! 💪🚀

koméntar

alamat surélék anjeun moal diterbitkeun. Widang anu diperyogikeun dianggo * Labél

Ngagulung ka luhur