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

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

HestiaCP php-fpm процесси көп 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 процесстеринин CPUны узак убакыт бою ээлеп алышына жол бербейт.

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

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

аягында

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

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

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

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

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

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

 

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

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