Cara Mencegah PHP-FPM daripada memakan terlalu banyak RAM di Linux

Cara Mencegah PHP-FPM daripada memakan terlalu banyak RAM di Linux

Sekiranya anda telah mengerahkan a Lemp (Linux, Nginx, MySQL/MariaDB, dan Php) timbunan, maka anda mungkin menggunakan Fastcgi proksi dalam Nginx (Sebagai pelayan HTTP), untuk pemprosesan PHP. PHP-FPM (akronim dari Pengurus Proses Fastcgi) adalah alternatif yang digunakan secara meluas dan berprestasi tinggi Php fastcgi pelaksanaan.

Berikut adalah panduan berguna untuk menubuhkan Stack Lemp di Linux.

  • Cara Memasang Stack Lemp dengan Phpmyadmin di Ubuntu 20.04
  • Cara Memasang Pelayan Lemp pada CentOS 8
  • Cara memasang Lemp pada pelayan Debian 10

Baru -baru ini, semua kami Php laman web di salah satu daripada kami Lemp Pelayan Web menjadi lambat dan akhirnya berhenti bertindak balas ke atas masuk ke pelayan. Kami mendapati bahawa sistem itu semakin rendah pada RAM: PHP-FPM telah memakan sebahagian besar RAM, seperti yang ditunjukkan dalam tangkapan skrin berikut (GLANCES - Alat Pemantauan Sistem).

$ melirik 
Pandangan - Alat Pemantauan Sistem

Dalam artikel ini, kita akan menunjukkan cara mencegah PHP-FPM daripada memakan terlalu banyak atau semua memori sistem anda (Ram) di Linux. Pada akhir panduan ini, anda akan belajar bagaimana mengurangkan PHP-FPM Penggunaan memori sebanyak 50% atau lebih.

Kurangkan penggunaan memori PHP-FPM

Setelah melakukan penyelidikan di internet, kami mendapati bahawa kami perlu menyusun semula PHP-FPM Pengurus proses dan aspek tertentu untuk mengurangkan penggunaan memori PHP-FPM dalam fail konfigurasi kolam.

Kolam lalai adalah www dan fail konfigurasinya terletak di /etc/php-fpm.D/www.Conf (Pada Centos/rhel/fedora) atau /etc/php/7.4/fpm/kolam.D/www.Conf (Pada Ubuntu/debian/pudina).

$ sudo vim /etc /php-fpm.D/www.conf [pada centos/rhel/fedora] $ sudo vim/etc/php/7.4/fpm/kolam.D/www.Conf [di Ubuntu/Debian/Mint] 

Cari arahan berikut dan tetapkan nilai mereka sesuai dengan kes penggunaan anda. Untuk arahan yang dikomentari, anda perlu mengekang mereka.

PM = PM OnDemand.max_children = 80 malam.proses_idle_timeout = 10s pm.max_requests = 200 

Mari kita jelaskan arahan di atas dan nilai mereka secara ringkas. The pm Arahan menentukan bagaimana pengurus proses akan mengawal bilangan proses kanak -kanak. Kaedah lalai adalah dinamik, yang bermaksud bilangan kanak -kanak (proses kanak -kanak) ditetapkan secara dinamik bergantung kepada beberapa arahan lain termasuk pm.max_children yang mentakrifkan jumlah maksimum kanak -kanak yang boleh hidup pada masa yang sama.

Pengurus proses yang paling ideal adalah permintaan skim di mana tiada proses kanak -kanak dibuat pada permulaan tetapi ditanam atas permintaan. Proses kanak -kanak hanya bercabang apabila permintaan baru akan disambungkan berdasarkan pm.max_children dan pm.Process_idle_timeout yang mentakrifkan bilangan detik selepas proses terbiar akan dibunuh.

Terakhir tetapi tidak kurang, kita perlu menetapkan pm.max_requests parameter yang mentakrifkan bilangan permintaan setiap proses kanak-kanak harus dilaksanakan sebelum mengulang semula. Perhatikan bahawa parameter ini juga boleh digunakan sebagai penyelesaian untuk kebocoran memori di perpustakaan pihak ke -3.

Rujukan: Cara yang lebih baik untuk menjalankan php-fpm.

Setelah membuat konfigurasi di atas, saya perasan Ram Penggunaan kini baik di pelayan kami. Adakah anda mempunyai pemikiran untuk berkongsi yang berkaitan dengan topik atau soalan ini? Jangkau kami melalui borang maklum balas di bawah.