ਲੇਖ ਡਾਇਰੈਕਟਰੀ
HestiaCP ਸਰਵਰ CPU ਵਿੱਚ ਵਾਧਾ? PHP-FPM ਪ੍ਰਕਿਰਿਆ ਅਨੁਕੂਲਨ ਲਈ ਇੱਕ ਪੂਰੀ ਗਾਈਡ!

ਕੀ ਤੁਹਾਡਾ ਸਰਵਰ CPU ਲਗਾਤਾਰ 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
- *ਆਪਣੇ PHP ਸੰਸਕਰਣ, ਜਿਵੇਂ ਕਿ PHP8.3, ਵਿੱਚ ਬਦਲੋ, ਅਤੇ ਇਸਨੂੰ ਇਸ ਵਿੱਚ ਬਦਲੋ:
/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. ਪਾਬੰਦੀਆਂ ਯਾਦ ਕੀਤਾ ਸਰੋਤ ਵਰਤੋਂ
ਪ੍ਰਕਿਰਿਆ ਸੂਚੀ ਨੂੰ ਵੇਖਦਿਆਂ, ਮੈਨੂੰ ਮਿਲਿਆ ਮੈਮਕੈਸ਼ਡ ਪ੍ਰਕਿਰਿਆ CPU ਵਰਤੋਂ 24.8% ਹੈ!
ਇਹ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਕੈਸ਼ ਅਲੋਕੇਸ਼ਨ ਬਹੁਤ ਜ਼ਿਆਦਾ ਹੋਵੇ, ਜਿਸ ਕਾਰਨ CPU ਨੂੰ ਵੱਡੀ ਮਾਤਰਾ ਵਿੱਚ ਡੇਟਾ ਪ੍ਰੋਸੈਸ ਕਰਨਾ ਪੈਂਦਾ ਹੈ।
ਵਿਵਸਥਾ memcached ਸੰਰਚਨਾ:
sudo nano /etc/memcached.conf
ਸੋਧ:
-m 32 # 限制 Memcached 内存使用 32MB
ਫਿਰ ਰੀਬੂਟ ਕਰੋ:
sudo systemctl restart 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 ਹੌਲੀ ਪੁੱਛਗਿੱਛਾਂ ਦੀ ਜਾਂਚ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ, ਡੇਟਾਬੇਸ ਪੁੱਛਗਿੱਛ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਓ
✅ ਮੈਮਕੈਸ਼ਡ ਮੈਮੋਰੀ ਐਡਜਸਟ ਕਰੋ, 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
