HestiaCP php-fpm процесси көп CPU ресурстарын талап кылат. Аны кантип оптималдаштырсам болот?

HestiaCP Сервердин CPU ылдамдыгы? PHP-FPM процессин оптималдаштыруу боюнча толук колдонмо!

HestiaCP php-fpm процесси көп CPU ресурстарын талап кылат. Аны кантип оптималдаштырсам болот?

Server CPU ар дайым 100% болобу? желдеткич жапайы айланып жатат? Вебсайтты ачуу ылдамдыгы басаңдап жатабы?Күнөөлүү php-fpm болушу мүмкүн!

Мен жакында таптым chenweiliang.com Бул PHP бассейни php-fpm Процесс CPUну жиндидей жеп, сервер кыйрады!

Серверди жандандыруу үчүн мен оптималдаштыруунун бир катар ыкмаларын сынап көрдүм жана акыры CPU колдонууну азайтууга жетиштим.

Эми муну бөлүшөлү Натыйжалуу оптималдаштыруу колдонмосу! 🚀

1. php-fpm процесстеринин санын чектөө

php-fpm демейки жөндөөлөрү мүмкүнЖПроцесс контролсуз түзүлүп, сервердин CPU ашыкча жүктөлүшүнө алып келет.

Аны оптималдаштыруу үчүн биз процессти башкаруу параметрлерин өзгөртө алабыз.

күйгүзүү php-fpm Конфигурация файлдары:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *PHP8.3 сыяктуу PHP версияңызга өзгөртүңүз жана аны төмөнкүгө өзгөртүңүз:/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.

Төмөнкү параметрлерди табыңыз жана өзгөртүңүз:

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

Андан кийин кайра жүктөө php-fpm Аны натыйжалуу кылуу үчүн:

sudo systemctl restart php-fpm

натыйжа: php-fpm CPU ресурстарын ашыкча керектөөсүнө жол бербөө үчүн процесстердин санын чектеңиз.

2. OPCache иштетүү (PHP иштешин жакшыртуу үчүн)

PHP кодду аткарылган сайын кайра иштеп чыгат, бул ресурстарды коротуу.
чечим? OPCache иштетиңиз жана PHP кодуңузду кэштеңиз!

编辑 php.ini 文件 :

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

Төмөнкүлөрдү кошуу же өзгөртүү:

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

Сактоодон кийин PHP процессин кайра баштаңыз:

sudo systemctl restart php8.3-fpm

натыйжа: PHP кодун кайталап талдоону азайтыңыз, CPU жүгүн азайтыңыз жана аткаруунун натыйжалуулугун жогорулатыңыз.

3. PHP скрипттерин аткаруунун максималдуу убактысын чектөө

Эгерде PHP скрипти өтө узакка созулса, CPU ресурстары тынымсыз ээлеп калат.
Жөнөкөй тайм-аут мөөнөтүн коюу "кежир" процесстердин серверди узак убакытка ээлешинен сактайт.

күйгүзүү php.ini 文件 :

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

Төмөнкү параметрлерди өзгөртүү:

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

Андан кийин PHP процессин кайра баштаңыз:

sudo systemctl restart php-fpm

натыйжа: PHP процесстеринин узак убакытка иштешине жол бербөө жана CPU ресурстарынын калдыктарын азайтыңыз.

4. Текшерүү MySQL Жай суроо

PHP-FPM жогорку жүктөмгө ээ,Бул жай SQL сурамынан улам болушу мүмкүн!
Күйгүзүү MySQL Жай сурам журналы, кармап турган SQL билдирүүлөрүн табыңыз.

MySQL конфигурация файлын түзөтүңүз:

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

Төмөнкүгө кошуу:

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

Сактоодон кийин, MySQLди өчүрүп күйгүзүңүз:

sudo systemctl restart mysql

Андан кийин колдонуу mysqldumpslow Жай сурамдарды талдоо:

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

натыйжа: Убакытты талап кылган SQL сурамдарын табыңыз, маалымат базасынын иштешин оптималдаштырыңыз жана PHP жүгүн кыйыр түрдө азайтыңыз.

5. Memcached ресурстарды колдонууну чектөө

Процесс тизмесин карап, мен таптым Memcached процесси CPU колдонуу 24.8% түзөт!
Бул кэш бөлүштүрүү өтө чоң болушу мүмкүн, бул CPU чоң көлөмдөгү маалыматтарды иштетүүгө себеп болушу мүмкүн.

Жөндөө memcached Конфигурация:

sudo nano /etc/memcached.conf

Кайра карап чыгуу:

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

Андан кийин кайра жүктөө:

sudo systemctl restart memcached

натыйжа: Memcached процессинин CPU жүгүн азайтып, кэштин натыйжалуулугун жогорулатыңыз.

6. Статикалык ресурстарды кэшдөө үчүн Nginxти иштетиңиз

Көп жолу, PHP көп сандагы сурамдарды иштетет CSS, JS, сүрөттөр, бирок бул файлдарга PHP талдоо таптакыр кереги жок!
чечим? Статикалык ресурстарды кэшдөө үчүн Nginx колдонуңуз!

Nginx конфигурациясын түзөтүү:

sudo nano /etc/nginx/nginx.conf

Төмөнкүгө кошуу:

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

Сактоодон кийин Nginxти өчүрүп күйгүзүңүз:

sudo systemctl restart nginx

натыйжа: PHP статикалык файлдарды канча жолу иштетип, CPU колдонууну азайтат.

7. Эң көп CPU колдонгон PHP сценарийин табыңыз

Эгер оптималдаштыруудан кийин CPU дагы эле өтө жогору болсо, анда кээ бир PHP скрипттери жапайы иштеп жаткан болушу мүмкүн.
Эң жогорку CPU колдонуу менен PHP процессин билүү үчүн төмөнкү буйрукту колдонуңуз:

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

Эгер сиз PHP скрипти өтө көп CPU ээлеп жатканын байкасаңыз, аны түздөн-түз өлтүрө аласыз:

kill -9 PID

натыйжа:"Жаман алмаларды" так аныктап, PHP процессинин процессорду узак убакытка ээлешине жол бербөө.

Кыскача маалымат: PHP-FPMди оптималдаштыруунун 7 жолу

PHP-FPM процесстеринин санын чектөө, CPU ашыкча жүктөлүшүн алдын алуу үчүн
OPCache иштетүү, PHP кодун кайталап талдоону азайтат
PHP күтүү убакытын орнотуу, узак мөөнөттүү иштешин алдын алуу үчүн
MySQL жай сурамдарын текшерүү, маалымат базасы сурамынын иштешин оптималдаштыруу
Memcached Memory тууралоо, CPU жүгүн азайтуу
Nginx статикалык кэшин иштетүү, PHP талдоо жүгүн азайтуу
Жогорку CPU колдонуу PHP скрипттерин табыңыз, так оптималдаштыруу

аягында

Серверди оптималдаштыруу фитнес сыяктуу, сиз так тууралоолорду киргизишиңиз керек жана баш аламандык кылбаңыз!
Бир катар оптималдаштыруулардан кийин серверимдин CPU жүгү төмөндөдү 80% дан 15% га чейин, веб-сайт эки эсе тез ачылат!
Эгер сервериңизде ушундай көйгөйлөр болсо, бул ыкмаларды колдонуп көрүңүз! 💪

???? Азыр аракет кылыңыз! PHP-FPMиңизди оптималдаштырып, сервериңизди сактаңыз! 🚀

Hope Chen Weiliang блогу ( https://www.chenweiliang.com/ ) бөлүштү "HestiaCP php-fpm процесси көп CPU ресурстарын талап кылат, аны кантип оптималдаштыруу керек? ", бул сизге пайдалуу болушу мүмкүн.

Бул макаланын шилтемесин бөлүшүүгө кош келиңиз:https://www.chenweiliang.com/cwl-32490.html

Көбүрөөк жашыруун трюктарды ачуу үчүн🔑, биздин Telegram каналыбызга кошулуңуз!

Бөлүшүп, жакса лайк! Сиздин бөлүшүүлөрүңүз жана лайктарыңыз биздин туруктуу мотивациябыз!

 

发表 评论

Сиздин электрондук почта дарегиңиз жарыяланбайт. Милдеттүү талаалар колдонулат * 标注

Жылдыруу үчүн Top