


PHP-FPM TUNING: Menggunakan ' PM Static ' untuk prestasi maks
mata utama
- Untuk pelayan memori yang mencukupi, penetapan
- php-fpm menyediakan output yang tinggi dan latensi rendah. Tetapan ini membolehkan proses PHP-FPM mengekalkan kapasiti maksimum pada setiap masa, membolehkan tindak balas pesat ke puncak lalu lintas tanpa perlu menjana proses baru.
pm static
Menggunakan - Pelarasan yang berhati -hati diperlukan untuk mengelakkan memori yang tidak mencukupi atau masalah tekanan cache.
pm static
Ia harus ditetapkan mengikut bilangan maksimum proses PHP-FPM yang boleh dikendalikan oleh pelayan tanpa menjejaskan prestasi CPU.pm.max_children
untuk pelayan dengan pelbagai kolam PHP-FPM atau memori yang rendah, - atau
pm dynamic
mungkin lebih sesuai. Tetapan ini boleh menjimatkan ingatan dengan menyesuaikan bilangan subprocesses berdasarkan beban semasa, tetapi juga boleh menyebabkan masalah overhead apabila turun naik lalu lintas berlaku.pm ondemand
Pemantauan dan penalaan biasa konfigurasi PHP-FPM adalah penting untuk prestasi optimum tanpa mengira tetapan yang anda pilih. Saiz purata proses PHP-FPM berbeza dari pelayan ke pelayan dan memerlukan pelarasan manual dan pemahaman yang jelas mengenai corak sumber dan trafik pelayan.
Manuskrip asal artikel itu pada asalnya diterbitkan di Haydenjames.io tanpa mengedit dan diterbitkan semula di sini dengan izin dari penulis.
Marilah kita dengan cepat belajar cara terbaik untuk menubuhkan PHP-FPM untuk throughput tinggi, latensi rendah, dan lebih banyak CPU dan penggunaan memori. Secara lalai, kebanyakan tetapan menetapkan PM (Pengurus Proses) rentetan PHP-FPM ke dinamik, dan OnDemand biasanya disyorkan jika anda menghadapi masalah memori yang ada. Walau bagaimanapun, mari kita bandingkan kedua -dua pilihan pengurusan ini berdasarkan dokumentasi php.net dan bandingkan pilihan kegemaran saya untuk tetapan trafik yang tinggi - PM statik:
- : Bilangan proses kanak -kanak ditetapkan secara dinamik mengikut arahan berikut:
pm = dynamic
,pm.max_children
,pm.start_servers
,pm.min_spare_servers
.pm.max_spare_servers
- : Proses ini dihasilkan atas permintaan yang diperlukan, yang berbeza dari dinamik, yang bermula pada perkhidmatan bermula
pm = ondemand
.pm.start_servers
- : Bilangan proses kanak -kanak ditetapkan oleh
pm = static
.pm.max_children
Lihat senarai lengkap arahan PHP-FPM.CONF global untuk maklumat lanjut.
persamaan Pengurus Proses PHP-FPM (PM) dan pengawal selia CPUFREQIni mungkin kelihatan sedikit dari topik, tetapi saya ingin mengaitkannya dengan topik php-FPM kami. Ok, kita semua mempunyai kelajuan CPU yang perlahan pada satu ketika, sama ada komputer riba, mesin maya, atau pelayan khusus. Ingat skala kekerapan CPU? (CPUFREQ Regulator.) Tetapan ini boleh didapati di kedua -dua
NIX dan Windows Systems, dan dapat meningkatkan prestasi dan responsif sistem dengan mengubah tetapan pengatur CPU dari ondemand ke prestasi*. Kali ini, mari kita bandingkan penerangan dan cari persamaan:
-
Governor = ondemand
: Skala dinamik kekerapan CPU mengikut beban semasa. Lompat ke frekuensi tertinggi dan kemudian mengurangkan kekerapan apabila masa terbiar meningkat. -
Governor = conservative
: Skala dinamik kekerapan mengikut beban semasa. Kekerapan skala yang lebih lancar daripada OnDemand. -
Governor = performance
: Sentiasa jalankan CPU pada frekuensi maksimum.
Lihat senarai lengkap pilihan pengawal selia CPUFREQ untuk maklumat lanjut.
Adakah anda melihat persamaannya? Saya ingin menggunakan perbandingan ini terlebih dahulu, dengan matlamat mencari cara terbaik untuk menulis artikel, mengesyorkan pm static
php-fpm sebagai pilihan pertama anda.
Untuk pengawal selia CPU, tetapan prestasi adalah rangsangan prestasi yang cukup selamat, kerana ia hampir sepenuhnya bergantung kepada batasan CPU pelayan anda. Faktor lain hanya kesan sampingan seperti haba, hayat bateri (komputer riba), dan menetapkan kekerapan CPU secara kekal hingga 100%. Setelah ditetapkan untuk prestasi, ia adalah persediaan terpantas untuk CPU. Sebagai contoh, baca tentang tetapan force_turbo
pada Raspberry Pi, yang memaksa papan RPI anda menggunakan pengawal selia prestasi, dan penambahbaikan prestasi lebih ketara kerana kelajuan jam CPU yang rendah.
Gunakan pm static
mencapai prestasi maksimum pelayan
php-fpm pm static
atau pm ondemand
mungkin pilihan yang lebih baik. Sebaliknya, jika anda mempunyai memori yang cukup, anda boleh mengelakkan kebanyakan Pengurus Proses PHP (PM) overhead dengan menetapkan dynamic
ke kapasiti maksimum pelayan. Dalam erti kata lain, apabila anda melakukan pengiraan, pm static
harus ditetapkan kepada bilangan maksimum proses PHP-FPM yang boleh dijalankan tanpa membuat ketersediaan memori atau masalah tekanan cache. Juga, jangan terlalu tinggi untuk mengatasi CPU (s) dan menyebabkan banyak operasi PHP-FPM yang tidak diproses. pm.static
Dalam imej di atas, pm = static
dan pm.max_children = 100
pelayan ini menggunakan sehingga kira -kira 10GB daripada memori dipasang 32GB. Sila ambil perhatian lajur tafsiran diri yang diserlahkan. Semasa tangkapan skrin ini, terdapat kira -kira 200 "pengguna aktif" dalam Google Analytics (60 saat terakhir). Pada tahap ini, kira-kira 70% proses kanak-kanak PHP-FPM masih terbiar. Ini bermakna bahawa PHP-FPM sentiasa ditetapkan kepada kapasiti maksimum sumber pelayan tanpa mengira trafik semasa. Proses terbiar tetap dalam talian, menunggu puncak lalu lintas dan bertindak balas dengan segera, bukannya perlu menunggu PM untuk menanam proses kanak -kanak dan kemudian menutupnya selepas pm.process_idle_timeout
tamat. Saya telah menetapkan pm.max_requests
sangat tinggi kerana ini adalah pelayan pengeluaran tanpa kebocoran memori PHP. Jika anda mempunyai keyakinan 110% dalam skrip PHP semasa dan masa depan, anda boleh menggunakan pm.max_requests = 0
dalam statik. Walau bagaimanapun, adalah disyorkan untuk memulakan semula skrip dengan kerap. Tetapkan bilangan permintaan ke nombor yang lebih tinggi, kerana perkara itu adalah untuk mengelakkan overhead PM. Sebagai contoh, sekurang -kurangnya pm.max_requests = 1000
, bergantung kepada nombor pm.max_children
anda dan permintaan sesaat.
tangkapan skrin ini ditapis menggunakan Linux top
, oleh pilihan "U" (pengguna) dan nama pengguna PHP-FPM. Bilangan proses yang dipaparkan hanya kira-kira 50 (tiada pengiraan), tetapi pada dasarnya top
memaparkan statistik peringkat atas yang sesuai dengan tetingkap terminal anda-dalam kes ini, disusun oleh CPU %. Untuk melihat semua proses 100 PHP-FPM, anda boleh menggunakan arahan berikut:
<code>top -bn1 | grep php-fpm</code>
Bila Menggunakan pm ondemand
dan dynamic
Menggunakan pm dynamic
, anda mungkin melihat ralat yang serupa dengan yang berikut:
<code>WARNING: [pool xxxx] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4 idle, and 59 total children</code>
Anda boleh cuba meningkatkan/menyesuaikan tetapan, tetapi anda masih akan melihat ralat yang sama seperti yang diterangkan dalam siaran ServerFault. Dalam kes ini, , terutamanya dan
Soalan Lazim Mengenai Pelarasan PHP-FPM (FAQ) PHP-FPM meningkatkan prestasi laman web dengan berkesan menguruskan proses PHP. Ia menggunakan proses utama untuk mengawal pelbagai proses kanak -kanak yang memproses skrip PHP. Ini membolehkan penggunaan sumber pelayan yang cekap, kerana proses terbiar dapat ditamatkan dan proses baru dapat dihasilkan seperti yang diperlukan. Di samping itu, PHP-FPM menyokong Caching Opcode, yang boleh mempercepatkan pelaksanaan PHP dengan menyimpan bytecode skrip yang telah dikompilasi dalam memori bersama, menghapuskan keperluan untuk PHP untuk memuatkan dan menghuraikan skrip pada setiap permintaan.
Beberapa alat tersedia untuk memantau prestasi PHP-FPM. Alat ini termasuk halaman status PHP-FPM (yang menyediakan maklumat mengenai keadaan semasa proses pekerja) dan pelbagai alat baris arahan seperti Beberapa amalan terbaik dengan PHP-FPM termasuk: Penyesuaian Pengaturan Pengurus Proses untuk Memadankan Sumber dan Mod Lalu Lintas; Di samping itu, pastikan anda menyimpan perisian PHP-FPM dan pelayan web sehingga kini untuk memanfaatkan penambahbaikan prestasi terkini dan pembetulan keselamatan. pm.min
terlalu rendah dan sukar untuk menyesuaikan dengan betul kerana trafik rangkaian berubah -ubah dengan palung dan puncak. Nasihat biasa adalah menggunakan pm dynamic
. Walau bagaimanapun, ini lebih teruk lagi kerana apabila terdapat sedikit atau tidak lalu lintas, pm ondemand
akan menutup proses terbiar ke 0, dan kemudian anda akan berakhir dengan masalah overhead sebanyak yang berubah -ubah - melainkan, tentu saja, anda akan Jadilah masa tamat yang ditetapkan untuk sangat tinggi ... Dalam kes ini, anda hanya perlu menggunakan ondemand
tinggi pm.static
. pm.max_requests
PM dynamic
, boleh menjimatkan sumber anda. Sebagai contoh, tuan rumah beberapa akaun cPanel atau beberapa laman web di bawah kolam yang berbeza. Sebagai contoh, saya mempunyai pelayan yang mempunyai lebih daripada 100 akaun cPanel dan kira -kira 200 nama domain, ondemand
dan juga pm.static
tidak melakukannya dengan baik. Hanya dynamic
boleh melaksanakan dengan baik, kerana lebih daripada dua pertiga laman web mempunyai sedikit trafik. Menggunakan ondemand
, ini bermakna bahawa semua proses kanak -kanak akan ditutup, menjimatkan banyak memori pelayan! Syukurlah, pemaju cPanel telah menyelesaikan masalah ini dan kini ia mungkir kepada ondemand
. Sebelum ini, disebabkan oleh penggunaan ondemand
secara lalai, ia menjadikan PHP-FPM pilihan pada pelayan bersama walaupun pada kolam/akaun CPanel PHP-FPM yang terbiar. Jika anda menerima trafik yang baik, anda tidak mungkin menjadi tuan rumah pada pelayan dengan sejumlah besar kolam PHP-FPM (tuan rumah bersama). dynamic
Dalam PHP-FPM, sebaik sahaja anda mula menyediakan sejumlah besar trafik, ondemand
pengurus proses PHP-FPM mungkin mengehadkan throughput disebabkan oleh overhead yang wujud. Fahami sistem anda dan tetapkan proses PHP-FPM anda untuk memadankan kapasiti maksimum pelayan. Mulakan dengan tetapan penggunaan maksimum berdasarkan dynamic
atau pm dynamic
dan meningkat ke titik di mana memori dan CPU boleh mengendalikan tanpa dibanjiri. Anda akan melihat bahawa menggunakan ondemand
adalah kerana anda membiarkan segala -galanya berada dalam ingatan, dari masa ke masa, puncak lalu lintas akan menyebabkan CPU menjadi puncak dan beban pelayan dan purata CPU akan lebih lancar. Saiz purata proses PHP-FPM anda berbeza-beza oleh pelayan web dan perlu diselaraskan secara manual, jadi mengapa pengurus proses overhead yang lebih automatik- pm.max_children
dan pm static
-sa cadangan yang lebih popular. Semoga artikel ini membantu anda. dynamic
ondemand
PHP-FPM atau FastCGI Process Manager adalah pelaksanaan PHP FastCGI yang lain yang mempunyai beberapa ciri tambahan yang berguna untuk laman web dari mana-mana saiz, terutama untuk laman web yang sibuk. Adalah penting untuk prestasi pelayan kerana ia membolehkan pelayan mengendalikan lebih banyak permintaan daripada pelawat serentak dengan memanfaatkan kolam pekerja. Proses ini bertanggungjawab untuk menguraikan fail PHP, menghasilkan kandungan dinamik dan memberikannya kepada pelanggan. Dengan mengurus proses ini dengan berkesan, PHP-FPM dapat meningkatkan prestasi dan skalabiliti pelayan dengan ketara.
Bagaimana PHP-FPM meningkatkan prestasi laman web saya?
Apakah konfigurasi
pm static
dalam PHP-FPM dan bagaimana ia mempengaruhi prestasi? pm static
Dalam php-fpm konfigurasi
Bagaimana untuk menyesuaikan PHP-FPM untuk prestasi maksimum? pm
Melaraskan PHP-FPM untuk prestasi maksimum melibatkan penalaan tetapan konfigurasi berganda. Tetapan ini termasuk tetapan pm.max_children
yang menentukan pengurus proses untuk digunakan, dan tetapan pm.start_servers
yang menetapkan bilangan maksimum proses kanak -kanak. Tetapan penting lain termasuk pm.min_spare_servers
, pm.max_spare_servers
dan
Apakah masalah biasa dengan PHP-FPM dan bagaimana saya boleh menyelesaikannya? pm.max_children
Beberapa masalah biasa dengan PHP-FPM termasuk penggunaan CPU yang tinggi, masa tindak balas yang perlahan, dan kesilapan yang berkaitan dengan mencapai bilangan maksimum proses kanak-kanak. Masalah ini sering dapat diselesaikan dengan menyesuaikan tetapan konfigurasi PHP-FPM, seperti menambahkan
Bagaimana PHP-FPM dibandingkan dengan pengendali PHP yang lain?
Bolehkah saya menggunakan php-fpm dengan mana-mana pelayan web?
Apakah Caching Opcode dan bagaimana ia meningkatkan prestasi PHP? Bagaimana untuk memantau prestasi PHP-FPM?
top
dan ps
. Di samping itu, terdapat beberapa penyelesaian pemantauan pihak ketiga yang menyediakan metrik dan makluman yang lebih terperinci. Apakah beberapa amalan terbaik untuk menggunakan PHP-FPM?
Atas ialah kandungan terperinci PHP-FPM TUNING: Menggunakan ' PM Static ' untuk prestasi maks. 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











Terdapat empat jenis kesilapan utama dalam PHP: 1.Notice: yang paling sedikit, tidak akan mengganggu program, seperti mengakses pembolehubah yang tidak ditentukan; 2. Amaran: Serius daripada notis, tidak akan menamatkan program, seperti tidak mengandungi fail; 3. FatalError: Yang paling serius, akan menamatkan program ini, seperti tidak memanggil fungsi; 4. ParseError: Kesalahan sintaks, akan menghalang program daripada dilaksanakan, seperti lupa untuk menambah tag akhir.

PHP dan Python masing -masing mempunyai kelebihan mereka sendiri, dan memilih mengikut keperluan projek. 1.PHP sesuai untuk pembangunan web, terutamanya untuk pembangunan pesat dan penyelenggaraan laman web. 2. Python sesuai untuk sains data, pembelajaran mesin dan kecerdasan buatan, dengan sintaks ringkas dan sesuai untuk pemula.

PHP digunakan secara meluas dalam e-dagang, sistem pengurusan kandungan dan pembangunan API. 1) e-dagang: Digunakan untuk fungsi keranjang belanja dan pemprosesan pembayaran. 2) Sistem Pengurusan Kandungan: Digunakan untuk penjanaan kandungan dinamik dan pengurusan pengguna. 3) Pembangunan API: Digunakan untuk Pembangunan API RESTful dan Keselamatan API. Melalui pengoptimuman prestasi dan amalan terbaik, kecekapan dan pemeliharaan aplikasi PHP bertambah baik.

Dalam php, kata laluan_hash dan kata laluan 1) password_hash menjana hash yang mengandungi nilai garam untuk meningkatkan keselamatan. 2) Kata Laluan_verify Sahkan kata laluan dan pastikan keselamatan dengan membandingkan nilai hash. 3) MD5 dan SHA1 terdedah dan kekurangan nilai garam, dan tidak sesuai untuk keselamatan kata laluan moden.

Kaedah permintaan HTTP termasuk GET, POST, PUT dan DELETE, yang digunakan untuk mendapatkan, menghantar, mengemas kini dan memadam sumber masing -masing. 1. Kaedah GET digunakan untuk mendapatkan sumber dan sesuai untuk operasi membaca. 2. Kaedah Pos digunakan untuk menyerahkan data dan sering digunakan untuk membuat sumber baru. 3. Kaedah Put digunakan untuk mengemas kini sumber dan sesuai untuk kemas kini lengkap. 4. Kaedah Padam digunakan untuk memadam sumber dan sesuai untuk operasi penghapusan.

PHP adalah bahasa skrip yang digunakan secara meluas di sisi pelayan, terutamanya sesuai untuk pembangunan web. 1.PHP boleh membenamkan HTML, memproses permintaan dan respons HTTP, dan menyokong pelbagai pangkalan data. 2.PHP digunakan untuk menjana kandungan web dinamik, data borang proses, pangkalan data akses, dan lain -lain, dengan sokongan komuniti yang kuat dan sumber sumber terbuka. 3. PHP adalah bahasa yang ditafsirkan, dan proses pelaksanaan termasuk analisis leksikal, analisis tatabahasa, penyusunan dan pelaksanaan. 4.Php boleh digabungkan dengan MySQL untuk aplikasi lanjutan seperti sistem pendaftaran pengguna. 5. Apabila debugging php, anda boleh menggunakan fungsi seperti error_reporting () dan var_dump (). 6. Mengoptimumkan kod PHP untuk menggunakan mekanisme caching, mengoptimumkan pertanyaan pangkalan data dan menggunakan fungsi terbina dalam. 7

PHP mengendalikan fail muat naik melalui pembolehubah fail $ \ _. Kaedah untuk memastikan keselamatan termasuk: 1. Semak kesilapan muat naik, 2. Sahkan jenis dan saiz fail, 3. Mencegah penindasan fail, 4. Pindahkan fail ke lokasi storan tetap.

Dalam phpoop, diri :: merujuk kepada kelas semasa, ibu bapa :: merujuk kepada kelas induk, statik :: digunakan untuk mengikat statik lewat. 1.Self :: digunakan untuk kaedah statik dan panggilan berterusan, tetapi tidak menyokong pengikatan statik lewat. 2.Parent :: digunakan untuk subkelas untuk memanggil kaedah kelas induk, dan kaedah peribadi tidak dapat diakses. 3.Static :: Menyokong pengikatan statik lewat, sesuai untuk warisan dan polimorfisme, tetapi boleh menjejaskan kebolehbacaan kod.
