Артицле Дирецтори
ХестиаЦП Серверски ЦПУ скок? Комплетан водич за оптимизацију ПХП-ФПМ процеса!

Да ли је ЦПУ сервера увек на 100%? Вентилатор се дивље врти? Да ли се брзина отварања веб странице успорава?Кривац би могао бити пхп-фпм!
Недавно сам открио chenweiliang.com Овај ПХП базен php-fpm Процес је лудо потрошио процесор, а сервер се срушио!
Да бих оживео сервер, испробао сам низ метода оптимизације и коначно успео да смањим оптерећење процесора.
Сада, хајде да поделимо ово Водич за ефикасну оптимизацију! 🚀
1. Ограничите број пхп-фпм процеса
пхп-фпм подразумевана подешавања могуneograničenoПроцес се ствара неконтролисано, што доводи до преоптерећења серверског процесора.
Да бисмо га оптимизовали, можемо изменити параметре управљања процесом.
укључити php-fpm Конфигурациони фајлови:
sudo nano /etc/php/*/fpm/pool.d/www.conf
- *Промените на своју PHP верзију, као што је PHP8.3, и промените је у ово:
/etc/php/8.3/fpm/pool.d/www.conf
Упитајте верзију PHP-а коју је поставио HestiaCP
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
То значи да сајт користи ПХП КСНУМКС.
Пронађите и измените следеће параметре:
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
✅ ефекат: Ограничите број процеса како бисте спречили да пхп-фпм превише троши ЦПУ ресурсе.
2. Омогућите ОПЦацхе (да бисте побољшали перформансе ПХП-а)
ПХП поново анализира код сваки пут када се изврши, што је губитак ресурса.
Решење? Омогућите ОПЦацхе и кеширајте свој ПХП код!
Уредити 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 # 禁用实时检测,提高性能
Након чувања, поново покрените ПХП процес:
sudo systemctl restart php8.3-fpm
✅ ефекат: Смањите поновљено рашчлањивање ПХП кода, смањите оптерећење ЦПУ-а и побољшајте ефикасност извршавања.
3. Ограничите максимално време извршавања ПХП скрипти
Ако ПХП скрипта ради предуго, ЦПУ ресурси ће бити стално заузети.
Постављање разумног временског периода може спречити „тврдоглаве“ процесе да заузму сервер на дуже време.
укључити php.ini 文件 :
sudo nano /etc/php/*/fpm/php.ini
Измените следеће параметре:
max_execution_time = 30 # PHP 脚本最多执行 30 秒
max_input_time = 30 # 处理输入数据最多 30 秒
memory_limit = 256M # 限制单个 PHP 进程的内存占用
Затим поново покрените ПХП процес:
sudo systemctl restart php-fpm
✅ ефекат: Спречите дуготрајно покретање ПХП процеса и смањите расипање ЦПУ ресурса.
4. Проверите МиСКЛ Споро упит
ПХП-ФПМ има велико оптерећење,То може бити узроковано спорим СКЛ упитом!
Укључити МиСКЛ Спор дневник упита, сазнајте СКЛ наредбе које коче.
Уредите МиСКЛ конфигурациону датотеку:
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 秒的查询会被记录
Након чувања, поново покрените МиСКЛ:
sudo systemctl restart mysql
Затим користите mysqldumpslow Анализирајте споре упите:
mysqldumpslow -s c -t 10 /var/log/mysql-slow.log
✅ ефекат: Откријте СКЛ упите који одузимају много времена, оптимизујте перформансе базе података и индиректно смањите оптерећење ПХП-а.
5. Ограничите употребу ресурса Мемцацхед-а
Гледајући списак процеса, нашао сам Мемцацхед процес искоришћење ЦПУ-а је 24.8%!
Можда је алокација кеша превелика, што узрокује да ЦПУ обрађује велику количину података.
调整 memcached Конфигурација:
sudo nano /etc/memcached.conf
Ревизија:
-m 32 # 限制 Memcached 内存使用 32MB
Затим поново покрените:
sudo systemctl restart memcached
✅ ефекат: Смањите оптерећење ЦПУ-а Мемцацхед процеса и побољшајте ефикасност кеша.
6. Омогућите Нгинк-у да кешује статичке ресурсе
Много пута ПХП обрађује захтеве који садрже велики број ЦСС, ЈС, слике, али овим датотекама уопште није потребна ПХП анализа!
Решење? Користите Нгинк за кеширање статичких ресурса!
Уредите Нгинк конфигурацију:
sudo nano /etc/nginx/nginx.conf
Додај у:
location ~* \.(jpg|jpeg|png|gif|css|js|ico|xml)$ {
expires max;
log_not_found off;
}
Након чувања, поново покрените Нгинк:
sudo systemctl restart nginx
✅ ефекат: Смањите број пута када ПХП обрађује статичке датотеке и смањи употребу ЦПУ-а.
7. Пронађите ПХП скрипту која највише користи ЦПУ
Ако је ЦПУ и даље превисок након оптимизације, могуће је да неке ПХП скрипте раде дивље.
Користите следећу команду да бисте сазнали ПХП процес са највећом употребом ЦПУ-а:
ps -eo pid,user,pcpu,pmem,args --sort=-pcpu | grep php
Ако установите да ПХП скрипта заузима превише ЦПУ-а, можете је директно убити:
kill -9 PID
✅ ефекат:Прецизно идентификујте "лоше јабуке" и спречите ПХП процес да заузме ЦПУ на дуже време.
Резиме: 7 начина за оптимизацију ПХП-ФПМ-а
✅ Ограничите број ПХП-ФПМ процеса, да бисте спречили преоптерећење процесора
✅ Омогућите ОПЦацхе, смањити поновљено рашчлањивање ПХП кода
✅ Подешавање ПХП тимеоут-а, за спречавање дуготрајног рада
✅ Провера МиСКЛ спорих упита, оптимизовати перформансе упита базе података
✅ Подесите Мемцацхед меморију, смањујући оптерећење процесора
✅ Омогућите Нгинк статички кеш, смањујући оптерећење ПХП рашчлањивања
✅ Пронађите ПХП скрипте са високом потрошњом ЦПУ-а, прецизна оптимизација
у закључку
Оптимизација сервера је попут фитнеса, потребно је да извршите прецизна подешавања и не петљајте!
После низа оптимизација, оптерећење процесора мог сервера је пало 80% до 15%, веб локација се отвара дупло брже!
Ако ваш сервер има сличне проблеме, испробајте ове методе! 💪
???? Предузмите акцију одмах! Оптимизујте свој ПХП-ФПМ и сачувајте свој сервер! 🚀
Блог Хопе Цхен Веилианг ( https://www.chenweiliang.com/ ) дели „ХестиаЦП пхп-фпм процес заузима много ЦПУ ресурса, како га оптимизовати? “, може вам бити од помоћи.
Добродошли да поделите везу овог чланка:https://www.chenweiliang.com/cwl-32490.html
