GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Mencegah PHP-FPM Mengkonsumsi Terlalu Banyak RAM di Linux

Jika Anda telah menerapkan LEMP (Linux , NGINX , MySQL/MariaDB , dan PHP ) tumpukan, maka Anda mungkin menggunakan FastCGI proxy dalam NGINX (sebagai server HTTP), untuk pemrosesan PHP. PHP-FPM (singkatan dari FastCGI Process Manager ) adalah alternatif yang banyak digunakan dan berkinerja tinggi PHP FastCGI implementasi.

Berikut adalah panduan berguna untuk menyiapkan LEMP Stack di Linux.

  • Cara Menginstal LEMP Stack dengan PhpMyAdmin di Ubuntu 20.04
  • Cara Menginstal LEMP Server di CentOS 8
  • Cara Menginstal LEMP di Server Debian 10

Baru-baru ini, semua PHP . kami situs web di salah satu LEMP . kami server web menjadi lambat dan akhirnya berhenti merespons saat masuk ke server. kami menemukan bahwa sistem kehabisan RAM:PHP-FPM telah menghabiskan sebagian besar RAM, seperti yang ditunjukkan pada tangkapan layar berikut (sekilas – alat pemantauan sistem).

$ glances

Dalam artikel ini, kami akan menunjukkan cara mencegah PHP-FPM dari menghabiskan terlalu banyak atau semua memori sistem Anda (RAM ) di Linux. Di akhir panduan ini, Anda akan mempelajari cara mengurangi PHP-FPM konsumsi memori hingga 50% atau lebih.

Kurangi Penggunaan Memori PHP-FPM

Setelah melakukan beberapa penelitian di Internet, kami menemukan bahwa kami perlu mengkonfigurasi ulang PHP-FPM manajer proses dan aspek tertentu untuk mengurangi konsumsi memori PHP-FPM dalam file konfigurasi kumpulan.

Kumpulan default adalah www dan file konfigurasinya terletak di /etc/php-fpm.d/www.conf (di CentOS/RHEL/Fedora ) atau /etc/php/7.4/fpm/pool.d/www.conf (di Ubuntu/Debian/Mint ).

$ sudo vim /etc/php-fpm.d/www.conf             [On CentOS/RHEL/Fedora]
$ sudo vim /etc/php/7.4/fpm/pool.d/www.conf    [On Ubuntu/Debian/Mint]

Temukan arahan berikut dan atur nilainya agar sesuai dengan kasus penggunaan Anda. Untuk arahan yang dikomentari, Anda perlu membatalkan komentarnya.

pm = ondemand
pm.max_children = 80
pm.process_idle_timeout = 10s
pm.max_requests = 200

Mari kita jelaskan secara singkat arahan di atas dan nilainya. pm direktif menentukan bagaimana manajer proses akan mengontrol jumlah proses anak. Metode defaultnya adalah dinamis , yang berarti jumlah anak (proses anak) disetel secara dinamis bergantung pada beberapa arahan lain termasuk pm.max_children yang menentukan jumlah maksimum anak yang dapat hidup pada saat yang sama.

Manajer proses yang paling ideal adalah ondemand skema di mana tidak ada proses anak yang dibuat saat startup tetapi muncul sesuai permintaan. Proses turunan hanya bercabang ketika permintaan baru akan terhubung berdasarkan pm.max_children dan pm.process_idle_timeout yang menentukan jumlah detik setelah proses idle akan dihentikan.

Terakhir, kita perlu menyetel pm.max_requests parameter yang menentukan jumlah permintaan yang harus dijalankan oleh setiap proses anak sebelum pemijahan ulang. Perhatikan bahwa parameter ini juga dapat digunakan sebagai solusi untuk kebocoran memori di perpustakaan pihak ketiga.

Referensi :Cara yang lebih baik untuk menjalankan PHP-FPM.

Setelah membuat konfigurasi di atas, saya perhatikan RAM penggunaan sekarang baik-baik saja di server kami. Apakah Anda memiliki pemikiran untuk dibagikan terkait dengan topik atau pertanyaan ini? Hubungi kami melalui formulir masukan di bawah.


Ubuntu
  1. Linux – Bagaimana Cara Menjalankan Bootloader Dari Linux?

  2. Bagaimana Mencegah Log Menjadi Terlalu Besar?

  3. Bagaimana secara terprogram mencegah komputer linux dari tidur atau menyalakan screensaver?

  1. Cara menghapus RAM komputer di Ubuntu dan Linux Mint

  2. Bagaimana cara mencegah layanan Linux mulai otomatis?

  3. Bagaimana cara mencegah pengguna masuk, tetapi izinkan su - pengguna di Linux?

  1. Cara Mengakses Remote Windows Desktop dari Ubuntu Linux

  2. Bagaimana Mencegah Windows 10 Dari Merusak Superblock Ext4 Setiap Saat?

  3. Bagaimana Mencegah Sistem Menjadi Tidak Responsif Saat Thrashing (Out Of Ram)?