解决CentOS7中php-fpm进程数过多导致服务器内存资源消耗较大的问题
前言:
最近服务器内存使用率一直居高不下,检查之后发现可能和php-fpm进程数过多有关。本文记录了我优化php-fpm配置文件的过程并补充了一些和php-fpm有关的知识。
什么是php-fpm:
php-fpm即FastCGI进程管理器,用于控制php的内存和进程等。
操作环境:
CentOS 7
问题检查:
首先查看php进程总数:
pstree|grep php-fpm
回显:
|-php-fpm---20*[php-fpm]
根据回显信息可知,查询时有20个php-fpm进程。
也可以通过下面的命令列出消耗内存最多的前50个进程:
ps auxw|head -1;ps auxw|sort -rn -k4|head -50
解决过程:
下面我们通过修改配置文件来优化php-fpm,以达到降低内存使用率的目的。
我的php-fpm配置文件在 .../server/php/etc/ 目录下,进入该目录。
先备份一下原配置文件:
cp php-fpm.conf php-fpm.conf.bak
注:
使用vim打开配置文件后,按Esc键,之后输入”/”, 再输入“xxx”可以查找“xxx”这个字符串。
具体配置参数如下:
pm.max_children = 100改为:pm.max_children = 25 pm.start_servers = 20改为pm.start_servers = 5 pm.min_spare_servers = 5改为pm.min_spare_servers = 2 pm.max_spare_servers = 35改为pm.max_spare_servers = 10
重启服务器:
reboot
重启后可以发现内存使用率相比于之前降低了。
注:
1.php-fpm.conf中参数作用的说明:
pm.max_children:静态方式下开启的php-fpm进程数量。 pm.start_servers:动态方式下的起始php-fpm进程数量。 pm.min_spare_servers:动态方式下的最小php-fpm进程数。 pm.max_spare_servers:动态方式下的最大php-fpm进程数量。
2.进行上述设置时,我将php-fpm的执行方式设置成了动态:
pm = dynamic
3.php-fpm有两种执行方式:
一种是Static静态,另一种是Dynamic动态。如果设置成静态,那么只有 pm.max_children 这个参数起作用。如果设置成动态则有 pm.start_servers 、 pm.min_spare_servers 和 pm.max_spare_servers 这三个参数起作用。设置成动态后,当php-fpm启动时会按照 pm.start_servers 的参数设置启动相应个数的进程,之后php-fpm的进程数量将维持在 pm.min_spare_servers 和 pm.max_spare_servers 指定的个数之间。
4.如何选择使用php-fpm的静态还是动态执行方式:
动态php-fpm执行方式允许php-fpm释放多余进程,从而节约内存资源。
静态php-fpm执行方式不允许php-fpm释放多于进程,避免了频繁开启或停止php-fpm进程,从而降低了服务器在某些情况下的响应时间。
更多PHP相关知识,请访问PHP教程!
Atas ialah kandungan terperinci 解决CentOS7中php-fpm进程数过多导致服务器内存资源消耗较大的问题. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Cara menggunakan php-fpm untuk penalaan berprestasi tinggi PHP ialah bahasa skrip sebelah pelayan yang sangat popular yang digunakan secara meluas untuk membangunkan aplikasi web dan tapak web dinamik. Walau bagaimanapun, apabila trafik meningkat, prestasi aplikasi PHP anda mungkin terjejas. Untuk menyelesaikan masalah ini, kita boleh menggunakan php-fpm (FastCGIProcessManager) untuk penalaan berprestasi tinggi. Artikel ini akan memperkenalkan cara menggunakan php-fpm untuk meningkatkan prestasi aplikasi PHP dan menyediakan contoh kod. satu,

Cara menggunakan pengoptimuman PHP-FPM untuk meningkatkan prestasi aplikasi PrestaShop Dengan perkembangan pesat industri e-dagang, PrestaShop telah menjadi platform e-dagang yang dipilih oleh ramai peniaga. Walau bagaimanapun, apabila saiz kedai bertambah dan bilangan lawatan bertambah, aplikasi PrestaShop mungkin menghadapi kesesakan prestasi. Untuk meningkatkan prestasi aplikasi PrestaShop, kaedah biasa ialah menggunakan PHP-FPM untuk mengoptimumkan dan meningkatkan keupayaan pemprosesan aplikasi. PHP-FPM (FastCGI

Cara Meningkatkan Prestasi Aplikasi WooCommerce Menggunakan Gambaran Keseluruhan Pengoptimuman PHP-FPM WooCommerce ialah pemalam e-dagang yang sangat popular untuk mencipta dan mengurus kedai dalam talian di laman web WordPress. Walau bagaimanapun, apabila kedai anda berkembang dan trafik meningkat, apl WooCommerce boleh menjadi perlahan dan tidak stabil. Untuk menyelesaikan masalah ini, kami boleh menggunakan PHP-FPM untuk mengoptimumkan dan meningkatkan prestasi aplikasi WooCommerce. Apakah itu PHP-FP

Gambaran keseluruhan penggunaan kumpulan sambungan php-fpm untuk meningkatkan prestasi capaian pangkalan data: Dalam pembangunan web, capaian pangkalan data ialah salah satu operasi yang paling kerap dan memakan masa. Kaedah tradisional adalah untuk mencipta sambungan pangkalan data baharu untuk setiap operasi pangkalan data dan kemudian menutup sambungan selepas digunakan. Kaedah ini akan menyebabkan penubuhan dan penutupan sambungan pangkalan data yang kerap, meningkatkan overhed sistem. Untuk menyelesaikan masalah ini, anda boleh menggunakan teknologi kolam sambungan php-fpm untuk meningkatkan prestasi capaian pangkalan data. Prinsip kumpulan sambungan: Kolam sambungan ialah teknologi caching yang menggabungkan beberapa pangkalan data tertentu

Cara menggunakan PHP-FPM untuk mengoptimumkan dan meningkatkan prestasi aplikasi Phalcon Pengenalan: Phalcon ialah rangka kerja PHP berprestasi tinggi, yang boleh meningkatkan lagi prestasi aplikasi apabila digabungkan dengan PHP-FPM. Artikel ini akan memperkenalkan cara menggunakan PHP-FPM untuk mengoptimumkan prestasi aplikasi Phalcon dan menyediakan contoh kod khusus. 1. Apakah itu PHP-FMPPHP-FPM (PHPFastCGIProcessManager) ialah proses PHP yang bebas daripada pelayan web

PHP-FPM ialah pengurus proses PHP yang biasa digunakan untuk menyediakan prestasi dan kestabilan PHP yang lebih baik. Walau bagaimanapun, dalam persekitaran beban tinggi, konfigurasi lalai PHP-FPM mungkin tidak memenuhi keperluan, jadi kami perlu menalanya. Artikel ini akan memperkenalkan kaedah penalaan PHP-FPM secara terperinci dan memberikan beberapa contoh kod. 1. Tingkatkan bilangan proses Secara lalai, PHP-FPM hanya memulakan sebilangan kecil proses untuk mengendalikan permintaan. Dalam persekitaran beban tinggi, kami boleh menambah baik keselarasan PHP-FPM dengan menambah bilangan proses

Apakah php-fpm? Artikel berikut akan membawa anda memahami php-fpm dan memperkenalkan perkara yang kami perlukan untuk mengoptimumkan apabila mengoptimumkan php-fpm saya harap ia akan membantu semua orang.

Penyelesaian untuk Ubuntu tanpa php-fpm: 1. Tambah alamat sumber PHP dengan melaksanakan perintah "sudo apt-get" 2. Semak sama ada terdapat pakej php7 3. Pasang PHP dengan melaksanakan "sudo apt-get perintah install"; 4. , ubah suai konfigurasi untuk mendengar pada port 9000 untuk mengendalikan permintaan nginx; 5. Mulakan "php7.2-fpm" melalui "perkhidmatan sudo php7.2-fpm mula".
