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

Сервериңиздин процессору дайыма 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 脚本最多执行 30 秒
max_input_time = 30 # 处理输入数据最多 30 秒
memory_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
