Директориум за статии
HestiaCP Спак на процесорот на серверот? Комплетен водич за оптимизирање на процесот PHP-FPM!

Дали процесорот на серверот е секогаш на 100%? Навивачот диво се врти? Дали брзината на отворање на веб-локацијата се намалува?Виновникот може да биде php-fpm!
Неодамна открив chenweiliang.com Овој PHP базен php-fpm Процесот го изеде процесорот како луд, а серверот се сруши!
За да го оживеам серверот, пробав серија методи за оптимизација и конечно успеав да го намалам користењето на процесорот.
Сега, ајде да го споделиме ова Водич за ефикасна оптимизација! 🚀
1. Ограничете го бројот на процеси php-fpm
php-fpm стандардните поставки моженеограниченПроцесот се создава неконтролирано, што предизвикува преоптоварување на процесорот на серверот.
За да го оптимизираме, можеме да ги измениме параметрите за управување со процесот.
打开 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
Ова значи дека страницата користи 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 од прекумерно трошење на ресурсите на процесорот.
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-кодот, намалете го оптоварувањето на процесорот и подобрете ја ефикасноста на извршувањето.
3. Ограничете го максималното време на извршување на PHP скриптите
Ако PHP скрипта работи премногу долго, ресурсите на процесорот ќе бидат постојано зафатени.
Поставувањето разумен временски период може да спречи „тврдоглави“ процеси да го окупираат серверот долго време.
打开 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 да работат долго време и намалете го трошењето на ресурсите на процесорот.
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
Гледајќи го списокот со процеси, најдов Употребата на процесорот на мемкешираниот процес е 24.8%!
Можеби распределбата на кешот е преголема, што предизвикува процесорот да обработи голема количина на податоци.
调整 memcached Конфигурација:
sudo nano /etc/memcached.conf
Ревидирај:
-m 32 # 限制 Memcached 内存使用 32MB
Потоа рестартирајте:
sudo systemctl restart memcached
✅ Ефект: Намалете го оптоварувањето на процесорот на процесот Memcached и подобрете ја ефикасноста на кешот.
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 обработува статични датотеки и намалете ја употребата на процесорот.
7. Најдете ја PHP скриптата што користи најмногу процесор
Ако процесорот е сè уште превисок по оптимизацијата, може да биде дека некои PHP скрипти работат бесно.
Користете ја следнава команда за да го дознаете процесот на PHP со најголема употреба на процесорот:
ps -eo pid,user,pcpu,pmem,args --sort=-pcpu | grep php
Ако откриете дека PHP скрипта зафаќа премногу процесор, можете директно да го убиете:
kill -9 PID
✅ Ефект:Точно идентификувајте ги „лошите јаболка“ и спречете го процесот на PHP да го окупира процесорот долго време.
Резиме: 7 начини за оптимизирање на PHP-FPM
✅ Ограничете го бројот на PHP-FPM процеси, за да се спречи преоптоварување на процесорот
✅ Овозможи OPCache, намалете го повеќекратното парсирање на PHP кодот
✅ Поставување време на PHP, за да се спречи долгорочно работење
✅ Проверка на бавните прашања на MySQL, оптимизирајте ги перформансите на барањето во базата на податоци
✅ Прилагодете ја мемкешираната меморија, намалување на оптоварувањето на процесорот
✅ Овозможете Nginx статичен кеш, намалувајќи го товарот за парсирање на PHP
✅ Најдете PHP скрипти со висока употреба на процесорот, прецизна оптимизација
Во заклучок
Оптимизацијата на серверот е како фитнес, треба да направите прецизни прилагодувања и да не се плеткате!
По серија оптимизации, оптоварувањето на процесорот на мојот сервер падна од 80% надолу до 15%, веб-страницата се отвора двојно побрзо!
Ако вашиот сервер има слични проблеми, обидете се со овие методи! 💪
???? Преземете акција сега! Оптимизирајте го вашиот PHP-FPM и зачувајте го вашиот сервер! 🚀
Блог на Hope Chen Weiliang ( https://www.chenweiliang.com/ ) сподели „Процесот на HestiaCP php-fpm зазема многу ресурси на процесорот, како да го оптимизирате? “, можеби ќе ви биде од помош.
Добредојдовте да ја споделите врската од оваа статија:https://www.chenweiliang.com/cwl-32490.html
