Mae proses php-fpm HestiaCP yn defnyddio llawer o adnoddau CPU Sut alla i ei optimeiddio?

HestiaCP Ymchwydd CPU gweinydd? Canllaw cyflawn i optimeiddio'r broses PHP-FPM!

Mae proses php-fpm HestiaCP yn defnyddio llawer o adnoddau CPU Sut alla i ei optimeiddio?

A yw CPU y gweinydd bob amser ar 100%? Mae'r gefnogwr yn troelli'n wyllt? A yw cyflymder agor y wefan yn arafu?Efallai mai php-fpm yw'r troseddwr!

Darganfyddais yn ddiweddar chenweiliang.com Mae'r pwll PHP hwn php-fpm Bwytaodd y broses y CPU fel wallgof, a damwainiodd y gweinydd!

Er mwyn adfywio'r gweinydd, rhoddais gynnig ar gyfres o ddulliau optimeiddio ac yn y diwedd llwyddais i leihau'r defnydd o'r CPU.

Nawr, gadewch i ni rannu hyn Canllaw Optimeiddio Effeithlon! 🚀

1. Cyfyngu ar nifer y prosesau php-fpm

Gall gosodiadau diofyn php-fpmdiderfynMae'r broses yn cael ei chreu yn afreolus, gan achosi i'r CPU gweinydd orlwytho.

Er mwyn ei optimeiddio, gallwn addasu'r paramedrau rheoli prosesau.

trowch ymlaen php-fpm Ffeiliau Ffurfweddu:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *Newidiwch i'ch fersiwn PHP, fel PHP8.3, a'i newid i hyn:/etc/php/8.3/fpm/pool.d/www.conf

Ymholi'r fersiwn PHP a osodwyd gan HestiaCP

v-list-web-domain user domain.com

E.g:

v-list-web-domain abc chenweiliang.com

Yn yr allbwn, fe welwch rywbeth fel:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.3

Mae hyn yn golygu bod y safle yn defnyddio PHP 8.3.

Lleolwch ac addaswch y paramedrau canlynol:

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

Yna ailgychwyn php-fpm Er mwyn ei wneud yn effeithiol:

sudo systemctl restart php-fpm

Effaith: Cyfyngu ar nifer y prosesau i atal php-fpm rhag gor-ddefnyddio adnoddau CPU.

2. Galluogi OPCache (i wella perfformiad PHP)

Mae PHP yn adfer y cod bob tro y caiff ei weithredu, sy'n wastraff adnoddau.
Yr ateb? Galluogi OPCache a storio'ch cod PHP!

编辑 php.ini dogfen:

sudo nano /etc/php/*/fpm/php.ini

Ychwanegu neu addasu'r canlynol:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0  # 禁用实时检测,提高性能

Ar ôl arbed, ailgychwynwch y broses PHP:

sudo systemctl restart php8.3-fpm

Effaith: Lleihau dosrannu cod PHP dro ar ôl tro, lleihau baich CPU, a gwella effeithlonrwydd gweithredu.

3. Cyfyngu ar uchafswm amser gweithredu sgriptiau PHP

Os yw sgript PHP yn rhedeg yn rhy hir, bydd adnoddau CPU yn cael eu defnyddio'n barhaus.
Gall gosod cyfnod terfyn amser rhesymol atal prosesau "styfnig" rhag meddiannu'r gweinydd am amser hir.

trowch ymlaen php.ini dogfen:

sudo nano /etc/php/*/fpm/php.ini

Addasu'r paramedrau canlynol:

max_execution_time = 30  # PHP 脚本最多执行 30max_input_time = 30  # 处理输入数据最多 30memory_limit = 256M  # 限制单个 PHP 进程的内存占用

Yna ailgychwyn y broses PHP:

sudo systemctl restart php-fpm

Effaith: Atal prosesau PHP rhag rhedeg am amser hir a lleihau gwastraff adnoddau CPU.

4. Gwiriwch MySQL Ymholiad araf

Mae gan PHP-FPM lwyth uchel,Gall gael ei achosi gan yr ymholiad SQL araf!
Trowch ymlaen MySQL Log ymholiad araf, darganfyddwch y datganiadau SQL sy'n dal yn ôl.

Golygu'r ffeil ffurfweddu MySQL:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Ychwanegu at:

slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 1  # 超过 1 秒的查询会被记录

Ar ôl arbed, ailgychwyn MySQL:

sudo systemctl restart mysql

Yna defnyddiwch mysqldumpslow Dadansoddi ymholiadau araf:

mysqldumpslow -s c -t 10 /var/log/mysql-slow.log

Effaith: Darganfod ymholiadau SQL sy'n cymryd llawer o amser, gwneud y gorau o berfformiad cronfa ddata, a lleihau llwyth PHP yn anuniongyrchol.

5. Cyfyngu ar y defnydd o adnoddau Memcached

Wrth edrych ar y rhestr prosesau, darganfyddais Defnydd CPU proses Memcached yw 24.8%!
Efallai bod y dyraniad cache yn rhy fawr, gan achosi i'r CPU brosesu llawer iawn o ddata.

调整 memcached Ffurfweddiad:

sudo nano /etc/memcached.conf

Adolygu:

-m 32  # 限制 Memcached 内存使用 32MB

Yna ailgychwyn:

sudo systemctl restart memcached

Effaith: Lleihau baich CPU y broses Memcached a gwella effeithlonrwydd cache.

6. Galluogi Nginx i storio adnoddau sefydlog

Lawer gwaith, mae PHP yn prosesu ceisiadau sy'n cynnwys nifer fawr o CSS, JS, delweddau, ond nid oes angen dosrannu PHP o gwbl ar y ffeiliau hyn!
Yr ateb? Defnyddiwch Nginx i storio adnoddau sefydlog!

Golygu cyfluniad Nginx:

sudo nano /etc/nginx/nginx.conf

Ychwanegu at:

location ~* \.(jpg|jpeg|png|gif|css|js|ico|xml)$ {
    expires max;
    log_not_found off;
}

Ar ôl arbed, ailgychwyn Nginx:

sudo systemctl restart nginx

Effaith: Lleihau'r nifer o weithiau y mae PHP yn prosesu ffeiliau statig a lleihau'r defnydd o CPU.

7. Dewch o hyd i'r sgript PHP sy'n defnyddio'r CPU mwyaf

Os yw'r CPU yn dal yn rhy uchel ar ôl optimeiddio, efallai bod rhai sgriptiau PHP yn rhedeg yn wyllt.
Defnyddiwch y gorchymyn canlynol i ddarganfod y broses PHP gyda'r defnydd CPU uchaf:

ps -eo pid,user,pcpu,pmem,args --sort=-pcpu | grep php

Os gwelwch fod sgript PHP yn cymryd gormod o CPU, gallwch ei ladd yn uniongyrchol:

kill -9 PID

Effaith: Nodi'r "afalau drwg" yn gywir ac atal y broses PHP rhag meddiannu'r CPU am amser hir.

Crynodeb: 7 ffordd i wneud y gorau o PHP-FPM

Cyfyngu ar nifer y prosesau PHP-FPM, i atal gorlwytho CPU
Galluogi OPCache, lleihau dosrannu cod PHP dro ar ôl tro
Gosod terfyn amser PHP, i atal gweithrediad hirdymor
Gwirio ymholiadau araf MySQL, optimeiddio perfformiad ymholiad cronfa ddata
Addasu Cof Memcached, lleihau baich CPU
Galluogi storfa statig Nginx, lleihau'r baich dosrannu PHP
Dod o hyd i sgriptiau PHP defnydd CPU uchel, optimization manwl gywir

i gloi

Mae optimeiddio gweinydd fel ffitrwydd, mae angen i chi wneud addasiadau manwl gywir a pheidiwch â chwarae o gwmpas!
Ar ôl cyfres o optimizations, fy llwyth CPU gweinyddwr wedi gostwng o 80% i lawr i 15%, mae'r wefan yn agor ddwywaith mor gyflym!
Os oes gan eich gweinydd broblemau tebyg, rhowch gynnig ar y dulliau hyn! 💪

???? Gweithredwch nawr! Optimeiddiwch eich PHP-FPM ac arbedwch eich gweinydd! 🚀

发表 评论

Ni fydd eich cyfeiriad e-bost yn cael ei gyhoeddi. 必填 项 已 用 * Label

Sgroliwch i'r brig