HestiaCP php-fpm prosesi çoxlu CPU resursları tələb edir.

HestiaCP Server CPU artımı? PHP-FPM prosesini optimallaşdırmaq üçün tam bələdçi!

HestiaCP php-fpm prosesi çoxlu CPU resursları tələb edir.

Server CPU həmişə 100% səviyyəsindədir? Fan vəhşicəsinə fırlanır? Veb saytın açılış sürəti yavaşlayır?Günahkar php-fpm ola bilər!

Bu yaxınlarda kəşf etdim chenweiliang.com Bu PHP hovuzu php-fpm Proses CPU-nu dəli kimi yedi və server çökdü!

Serveri canlandırmaq üçün bir sıra optimallaşdırma üsullarını sınadım və nəhayət CPU istifadəsini azaltmağa nail oldum.

İndi bunu paylaşaq Effektiv Optimallaşdırma Bələdçisi! 🚀

1. php-fpm proseslərinin sayını məhdudlaşdırın

php-fpm standart parametrləri ola bilərLimitsizProses nəzarətsiz şəkildə yaradılır, bu da server CPU-nun həddindən artıq yüklənməsinə səbəb olur.

Onu optimallaşdırmaq üçün biz prosesin idarəetmə parametrlərini dəyişdirə bilərik.

işə sal php-fpm Konfiqurasiya Faylları:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *PHP8.3 kimi PHP versiyanıza dəyişin və bunu belə dəyişin:/etc/php/8.3/fpm/pool.d/www.conf

HestiaCP tərəfindən təyin edilmiş PHP versiyasını sorğulayın

v-list-web-domain user domain.com

Məsələn:

v-list-web-domain abc chenweiliang.com

Çıxışda belə bir şey görəcəksiniz:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.3

Bu o deməkdir ki, vebsayt istifadə edir PHP 8.3.

Aşağıdakı parametrləri tapın və dəyişdirin:

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

Sonra yenidən başladın php-fpm Effektiv etmək üçün:

sudo systemctl restart php-fpm

Effekt: php-fpm-in CPU resurslarını həddindən artıq istehlak etməsinin qarşısını almaq üçün proseslərin sayını məhdudlaşdırın.

2. OPCache-i aktivləşdirin (PHP performansını yaxşılaşdırmaq üçün)

PHP kodu hər yerinə yetirildikdə yenidən təhlil edir, bu da resursların israfıdır.
Həll yolu? OPCache-i aktivləşdirin və PHP kodunuzu önbelleğe alın!

编辑 php.ini sənəd:

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

Aşağıdakıları əlavə edin və ya dəyişdirin:

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

Yadda saxladıqdan sonra PHP prosesini yenidən başladın:

sudo systemctl restart php8.3-fpm

Effekt: PHP kodunun təkrar təhlilini azaldın, CPU yükünü azaldın və icra səmərəliliyini artırın.

3. PHP skriptlərinin maksimum icra müddətini məhdudlaşdırın

PHP skripti çox uzun müddət işləyirsə, CPU resursları davamlı olaraq işğal ediləcək.
Ağlabatan fasilə müddəti təyin etmək "inadkar" proseslərin serveri uzun müddət tutmasının qarşısını ala bilər.

işə sal php.ini sənəd:

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

Aşağıdakı parametrləri dəyişdirin:

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

Sonra PHP prosesini yenidən başladın:

sudo systemctl restart php-fpm

Effekt: PHP proseslərinin uzun müddət işləməsinin qarşısını alın və CPU resurs israfını azaldın.

4. Yoxlayın MySQL Yavaş sorğu

PHP-FPM yüksək yükə malikdir,Buna yavaş SQL sorğusu səbəb ola bilər!
Yandır MySQL Yavaş sorğu jurnalı, geri tutan SQL ifadələrini tapın.

MySQL konfiqurasiya faylını redaktə edin:

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 秒的查询会被记录

Yadda saxladıqdan sonra MySQL-i yenidən başladın:

sudo systemctl restart mysql

Sonra istifadə edin mysqldumpslow Yavaş sorğuları təhlil edin:

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

Effekt: Vaxt aparan SQL sorğularını tapın, verilənlər bazası performansını optimallaşdırın və dolayı yolla PHP yükünü azaldın.

5. Memcached resurs istifadəsini məhdudlaşdırın

Proses siyahısına baxaraq tapdım Memcached proses CPU istifadəsi 24.8% təşkil edir!
Ola bilər ki, keş ayrılması çox böyükdür, bu da CPU-nun böyük miqdarda məlumatı emal etməsinə səbəb olur.

调整 memcached Konfiqurasiya:

sudo nano /etc/memcached.conf

Yenidən nəzərdən keçirin:

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

Sonra yenidən başladın:

sudo systemctl restart memcached

Effekt: Memcached prosesinin CPU yükünü azaldın və keşin səmərəliliyini artırın.

6. Statik resursları keşləmək üçün Nginx-i aktiv edin

Çox vaxt PHP çoxlu sayda sorğuları emal edir CSS, JS, şəkillər, lakin bu fayllar PHP təhlilinə ümumiyyətlə ehtiyac duymur!
Həll yolu? Statik resursları keşləmək üçün Nginx istifadə edin!

Nginx konfiqurasiyasını redaktə edin:

sudo nano /etc/nginx/nginx.conf

添加:

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

Yadda saxladıqdan sonra Nginx-i yenidən başladın:

sudo systemctl restart nginx

Effekt: PHP-nin statik faylları emal etməsinin sayını azaldın və CPU istifadəsini azaldın.

7. Ən çox CPU istifadə edən PHP skriptini tapın

Optimallaşdırmadan sonra CPU hələ də çox yüksəkdirsə, bu, bəzi PHP skriptlərinin vəhşi şəkildə işləməsi ola bilər.
Ən yüksək CPU istifadəsi ilə PHP prosesini tapmaq üçün aşağıdakı əmrdən istifadə edin:

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

PHP skriptinin çox CPU tutduğunu görsəniz, onu birbaşa öldürə bilərsiniz:

kill -9 PID

Effekt:"Pis almaları" dəqiq müəyyənləşdirin və PHP prosesinin CPU-nu uzun müddət tutmasının qarşısını alın.

Xülasə: PHP-FPM optimallaşdırmağın 7 yolu

PHP-FPM proseslərinin sayını məhdudlaşdırın, CPU yüklənməsinin qarşısını almaq üçün
OPCache-ni aktivləşdirin, PHP kodunun təkrar təhlilini azaldır
PHP vaxt aşımı təyin edilir, uzunmüddətli əməliyyatın qarşısını almaq üçün
MySQL yavaş sorğularının yoxlanılması, verilənlər bazası sorğusunun performansını optimallaşdırın
Memcached Yaddaşını tənzimləyin, CPU yükünü azaldır
Nginx statik keşini aktivləşdirin, PHP təhlili yükünü azaldır
Yüksək CPU istifadə PHP skriptləri tapın, dəqiq optimallaşdırma

sonda

Serverin optimallaşdırılması fitnes kimidir, dəqiq tənzimləmələr etməli və qarışmamalısınız!
Bir sıra optimallaşdırmalardan sonra serverim CPU yükü aşağı düşdü 80%-dən 15%-ə qədər, internet saytı iki dəfə tez açılır!
Əgər serverinizdə oxşar problemlər varsa, bu üsulları sınayın! 💪

???? İndi hərəkətə keçin! PHP-FPM-inizi optimallaşdırın və serverinizi yadda saxlayın! 🚀

发表 评论

E-poçt ünvanınız dərc olunmayacaq. Zəruri sahələrdən istifadə olunur * Etiket

Top gedin