אַרטיקל וועגווייַזער
- 1 די האַרץ סיבה וואָס PHP-FPM איז אָוווערלאָודיד
- 2 PHP-FPM פּראָצעס בעקן אַפּטאַמאַזיישאַן (האַרץ פּאַראַמעטער אַדזשאַסטמאַנט)
- 3 געבן PHP-FPM סטאַטוס מאָניטאָרינג צו האַלטן די פּראָגרעס אין קיין צייט
- 4 אָפּטימיזע PHP-FPM לאָגס צו געשווינד טראָובלעשאָאָט פּראָבלעמס
- 5 ריסטאַרט PHP-FPM קעסיידער צו פאַרמייַדן זכּרון ליקס
- 6 וואָס אויב די פּראָבלעם בלייַבט? ווייַטער אַפּטאַמאַזיישאַן!
- 7 קיצער: אָפּטימיזע PHP-FPM און די וועבזייטל וועט ניט מער קראַך!
האָבן איר אלץ געפּלאָנטערט דעם סיטואַציע?וועבזייטל אַקסעס פּלוצלינג סלאָוד אַראָפּ, אָדער אפילו ריזאַלטיד אין אַ 500 טעות נאָך ריסטאַרטינג PHP-FPM, עס איז אומגעקערט צו נאָרמאַל., אָבער די פּראָבלעם ריאַפּערז נאָך אַ בשעת? דאָס איז אַזוי פראַסטרייטינג!
פארוואס איז דאָס געשעעניש?אין פאַקט, דאָס איז יוזשאַוואַלידי PHP-FPM פּראָצעס בעקן איז נישט קאַנפיגיערד רעכט, אָדער די סערווער רעסורסן זענען ניט גענוגיק.געפֿירט דורך. הייַנט, מיר וועלן ונ דורך אַפּטאַמייז HestiaCP PHP-FPM אונטער די קאַפּטער מאכט די וועבזייטל ווי סטאַביל ווי אַ שטיין!
די האַרץ סיבה וואָס PHP-FPM איז אָוווערלאָודיד
PHP-FPM איז אַפּראָצעס מאַנאַגער, וואָס איז פאַראַנטוואָרטלעך פֿאַר האַנדלינג דינאַמיש ריקוועס. אויב די קאַנפיגיעריישאַן איז נישט גלייַך, דאָס קען פירן צו:
- סערווירער רעסורסן זענען ויסגעמאַטערט, וואָס מאכט PHP-FPM ניט ביכולת צו ריספּאַנד צו נייַע ריקוועס אין אַ בייַצייַטיק שטייגער;
- צו ווייניק פּראַסעסאַז, ווען פאַרקער פּלוצלינג ינקריסיז, עס קענען ניט זיין פּראַסעסט אין צייט;
- פּראָצעס באַניץ איז צו הויך, קאָזינג די קפּו מאַסע צו ופרייַסן.

ווי צו זאָגן אויב PHP-FPM איז אָוווערלאָודיד?
קענען נוצן top אָדער htop באַפֿעל צו זען קפּו און זכּרון באַניץ:
top -c
אויב איר זען פּראָצעס אינפֿאָרמאַציע ענלעך צו די פאלגענדע, עס מיטל אַז PHP-FPM איז פליסנדיק אונטער הויך מאַסע:
1669293 abc 20 0 790284 227880 185568 R 73.1 0.9 1:30.09 php-fpm: pool chenweiliang.com
1669522 abc 20 0 801924 224224 170236 R 69.9 0.9 0:59.01 php-fpm: pool chenweiliang.com
זען ווי די פּראַסעסאַז נעמען איבער 70% פון די קפּו? אויב דאָס כאַפּאַנז אָפט, דיין PHP-FPM עס מוזן זיין אַ פּראָבלעם!
אַזוי, ווי קענען מיר אַפּטאַמייז די 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-FPM קאָנפיגוראַציע:
[chenweiliang.com]
listen = /run/php/php8.3-fpm-chenweiliang.com.sock
listen.owner = abc
listen.group = www-data
listen.mode = 0660
user = abc
group = abc
pm = ondemand
pm.max_children = 8
pm.max_requests = 4000
pm.process_idle_timeout = 10s
איר קענט זען אַז דיין יו pm געוויינט איז ondemand,כאָטש עס קען רעדוצירן די ריסאָרס באַניץ בעשאַס ליידיק צייט, ווען פאַרקער פּלוצלינג ינקריסיז, דער פּראָצעס קען נישט קענען צו ריספּאַנד אין צייט., ריזאַלטינג אין אַ 500 טעות.
1. סטרויערן פפּ-פפּם פּראָצעס בעקן פּאַראַמעטערס
אויב די קאַנפיגיעריישאַן ניצט dynamicדאָס איז אַ מעטאָדע פֿון פֿאָרויס-אָנהייבן געוויסע אַרבעט פּראָצעסן און דינאַמיש אַדזשאַסטירן זיי לויטן בקשה-וואָלומען, וואָס קען רעאַגירן שנעלער ווען דער בקשה-וואָלומען פּלוצעם וואַקסט.
פֿאַר וועבזײַטן מיט אַ געוויסע מאָס טראַפיק, איז רעקאָמענדירט צו נוצן pm = dynamicווייל עס קען אויפהאלטן א געוויסע צאל ליידיגע פראצעסן און אויסמיידן 500 ערראָרס בעת הויכע קאנקורענץ.
עס איז רעקאָמענדירט צו נוצן עס נאָר ווען דער אַקסעס באַנד איז גאָר נידעריק און די זכּרון רעסורסן זענען ענג. pm = ondemand צו שפּאָרן רעסורסן.
פארגעלייגט צו ondemand, און אַפּטאַמייז pm.max_children און אנדערע פּאַראַמעטערס:
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 后自动退出
פארוואס ווילסטו אזוי טוישן?
pm = dynamic: אַלאַקייט פּראַסעסאַז מער פלעקסאַבאַל צו ויסמיידן בעטן ווארטן וואָס קען זיין געפֿירט דורך אָנדעמאַנד;pm.max_children = 16: פאַרהיטן 500 ערראָרס געפֿירט דורך צו ווייניק פּראַסעסאַז;pm.start_servers = 5: ויסמיידן פּאַמעלעך פּראָצעס סטאַרטאַפּ;pm.max_requests = 3000:פּרעווענטינג זכּרון ליקס, ריסייקאַל די פּראָצעס קעסיידער.
2. באַגרענעצן די דורכפירונג צייַט פון PHP סקריפּס צו פאַרמייַדן לאַנג-טערמין אַקיאַפּאַנסי
request_terminate_timeout = 30s ; 超过 30s 的 PHP 脚本自动终止
php_admin_value[memory_limit] = 128M ; 限制 PHP 进程最大内存占用
דעם קענען פאַרמייַדן עטלעכעPHP סקריפּס וואָס נוצן צו פיל קפּו קענען ברענגען אַראָפּ דיין סערווער.
נאָך שפּאָרן, ריסטאַרט די PHP פּראָצעס:
sudo systemctl restart php8.3-fpmגעבן PHP-FPM סטאַטוס מאָניטאָרינג צו האַלטן די פּראָגרעס אין קיין צייט
געבן PHP-FPM פּראָצעס מאָניטאָרינג און זען עס אין קיין צייטקראַנט נומער פון אַקטיוו פּראַסעסאַז און בעטן ווארטן סטאַטוס, צו ויסמיידן סערווער אָוווערלאָודינג.
在 php-fpm.conf צוגעגעבן אין:
pm.status_path = /status
דערנאָך, Nginx קאַנפיגיעריישאַן:
location /status {
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
allow 127.0.0.1;
deny all;
}
אין דעם וועג, איר קענען http://yourdomain.com/status קוק אויף PHP-FPM אין קאַמף!
אָפּטימיזע PHP-FPM לאָגס צו געשווינד טראָובלעשאָאָט פּראָבלעמס
在 php-fpm.conf לייג צו:
php_admin_value[error_log] = /var/log/php-fpm/error.log
php_admin_value[log_errors] = On
php_admin_value[error_reporting] = E_ALL
slowlog = /var/log/php-fpm/slow.log
request_slowlog_timeout = 5s ; 执行超过 5s 的脚本记录到日志
אין דעם וועג, ווען אַ 500 טעות אַקערז, איר קענען זען די קלאָץ גלייַך:
tail -f /var/log/php-fpm/error.log
זען אויב PHP ריפּאָרץ אַ טעות, אַזאַ ווי out of memory,script execution timeout וואַרטן.
ריסטאַרט PHP-FPM קעסיידער צו פאַרמייַדן זכּרון ליקס
קענען צו פאָרן cron ריסטאַרט PHP-FPM קעסיידער צו פאַרמייַדן לאַנג-פליסנדיק פּראַסעסאַזזכּרון ליקס.
crontab -e
לייג די פאלגענדע סקעדזשולד אַרבעט צו אויטאָמאַטיש ריסטאַרט PHP-FPM ביי 3:XNUMX יעדער טאָג:
0 3 * * * /usr/sbin/service php8.3-fpm restart
וואָס אויב די פּראָבלעם בלייַבט? ווייַטער אַפּטאַמאַזיישאַן!
אויב איר נאָך נאָכגיין די אויבן אַפּטאַמאַזיישאַןטייל מאָל 500 ערראָרס פאַלן, איר קענט פאָרזעצן מיט די פאלגענדע אָפּטימיזאַטיאָנס:
1. געבן OPcache צו פֿאַרבעסערן פפּ דורכפירונג עפעקטיווקייַט
אויב OPcache איז נישט ענייבאַלד נאָך, איר קענען ינסטאַלירן עס ווי דאָס (ניצן ובונטו ווי אַ בייַשפּיל):
sudo apt install php8.3-opcache -y
דערנאָך רעדאַגירן php.ini:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.validate_timestamps=1
ווירקונג? PHP בלאַט דורכפירונג גיכקייַט איז זייער ימפּרוווד!
2. נגינקס קאַנפיגיעריישאַן אַפּטאַמאַזיישאַן
מאַכן זיכער אַז Nginx פֿאַרבונדענע פּאַראַמעטערס זענען גלייַך, אַזאַ ווי fastcgi_read_timeout סטרויערן עס אַפּראָופּרייטלי צו ויסמיידן PHP סקריפּס טערמאַנייטיד דורך Nginx רעכט צו לאַנג דורכפירונג צייט:
fastcgi_read_timeout 60s;
client_max_body_size 100M;
קיצער: אָפּטימיזע PHP-FPM און די וועבזייטל וועט ניט מער קראַך!
וואָס אַדזשאַסטמאַנץ האָבן מיר געמאכט נאָך דעם אַפּטאַמאַזיישאַן?
✅ אָפּטימיזינג די PHP-FPM פּראָצעס בעקן,נוצן ondemandאון אָפּטימיזירן pm.max_children פּאַראַמעטער;
✅ לימיטינג די דורכפירונג צייט פון PHP סקריפּס, צו פאַרמייַדן לאַנג-טערמין קפּו פאַך;
✅ געבן PHP-FPM מאָניטאָרינג, קוק די פּראָצעס מאַסע אין פאַקטיש צייט;
✅ אָפּטימיזינג PHP-FPM לאָגס, געשווינד טראָובלעשאָאָט 500 ערראָרס;
✅ ריסטאַרט PHP-FPM קעסיידער, פאַרמייַדן זכּרון ליקס;
✅ געבן OPcache, פֿאַרבעסערן פפּ דורכפירונג עפעקטיווקייַט;
✅ אָפּטימיזינג Nginx קאַנפיגיעריישאַן, צו ויסמיידן טיימאַוט ישוז.
נאָך דעם אַפּטאַמאַזיישאַן, די PHP-FPM מאַסע וועט זיין זייער רידוסט און די וועבזייטל אָפּעראַציע וועט זיין מער סטאַביל! 🔥
גיין פּרובירן עס איצט! 💪🚀
Hope Chen Weiliang בלאָג ( https://www.chenweiliang.com/ ) שערד "HestiaCP PHP-FPM מאַסע איז צו הויך? דינאַמיש וועב בלאַט 500 טעות? די אַפּטאַמאַזיישאַן וועט נעמען ווירקונג מיד! ", עס קען זיין נוציק פֿאַר איר.
ברוכים הבאים צו טיילן דעם לינק פון דעם אַרטיקל:https://www.chenweiliang.com/cwl-32512.html
כּדי צו עפֿענען מער פֿאַרבאָרגענע טריקס🔑, ברוכים הבאים זיך אָנצושליסן אין אונדזער טעלעגראַם קאַנאַל!
ייַנטיילן און ווי אויב איר ווי! דיין שאַרעס און לייקס זענען אונדזער מאָוטאַוויישאַן!