Saya mencoba menginstal php dengan fpm di macports. Saya membaca bahwa fpm berarti manajer proses FastCGI. Apakah itu berarti fastcgi dan fpm sama? Jika sama, lalu mengapa kita memiliki dua varian macports yang berbeda untuk php yaitu "php5 + fastcgi" dan "php5 + fpm"
117
SpawnFCGI
berapa banyak proses yang akan muncul, dan jumlah turunan PHP per proses. Jadi pemijahan 1 proses PHP, dengan 100 anak sama saja dengan menggunakan FPM dengan 100 anak ... Namun, yang terjadi sebaliknya. Jika FPM terbunuh (segfault, terserah), seluruh pekerja Anda mati. Di SpawnFCGI, jika salah satu proses mati, sisanya bisa tetap hidup ... Jadi tidak jelas satu-lebih-lebih-lebih-dari-yang-lain. Pendekatan berbeda. FPM direkomendasikan bukan karena alasan teknis, tetapi karena dipertahankan di sepanjang sisi inti (sebenarnya di dalamnya) ...Apa yang dikatakan Anthony benar-benar benar, tetapi saya ingin menambahkan bahwa pengalaman Anda kemungkinan besar akan menunjukkan kinerja dan efisiensi yang jauh lebih baik (karena bukan karena
fpm
-vs-fcgi
tetapi lebih karena implementasi Andahttpd
).Misalnya, saya memiliki mesin quad-core yang berjalan
lighttpd
+fcgi
bersenandung dengan baik. Saya meningkatkan ke mesin 16-inti untuk mengatasi pertumbuhan, dan dua hal meledak: penggunaan RAM, dan segfault. Saya mendapati diri saya memulai ulanglighttpd
setiap 30 menit untuk menjaga situs web tetap aktif.Saya beralih ke php-fpm dan nginx, dan penggunaan RAM turun dari> 20GB menjadi 2GB. Segfault juga menghilang. Setelah melakukan beberapa penelitian, saya mengetahui bahwa lighttpd dan fcgi tidak cocok dengan mesin multi-core yang sedang dimuat, dan juga memiliki masalah kebocoran memori dalam beberapa kasus.
Apakah ini karena
php-fpm
menjadi lebih baik darifcgi
? Tidak sepenuhnya, tetapi cara Anda menyambungkanphp-fpm
tampaknya jauh lebih efisien daripada cara Anda melayani melaluifcgi
.sumber
Menjalankan PHP sebagai CGI berarti Anda pada dasarnya memberi tahu server web Anda lokasi file yang dapat dieksekusi PHP, dan server menjalankan file yang dapat dieksekusi itu
sedangkan
PHP FastCGI Process Manager (PHP-FPM) adalah daemon FastCGI alternatif untuk PHP yang memungkinkan situs web menangani beban berat. PHP-FPM memelihara kumpulan (pekerja yang dapat menanggapi permintaan PHP) untuk mencapai ini. PHP-FPM lebih cepat daripada metode tradisional berbasis CGI, seperti SUPHP, untuk lingkungan PHP multi-pengguna
Namun, ada pro dan kontra untuk keduanya dan seseorang harus memilih sesuai kasus penggunaan spesifiknya.
Saya menemukan info di tautan ini untuk fastcgi vs fpm cukup membantu dalam memilih penangan mana yang akan digunakan dalam skenario saya.
sumber