Rumah >pembangunan bahagian belakang >tutorial php >Pilihan pengoptimuman prestasi untuk konfigurasi kumpulan proses php-fpm

Pilihan pengoptimuman prestasi untuk konfigurasi kumpulan proses php-fpm

WBOY
WBOYasal
2023-07-09 08:22:36824semak imbas

Pilihan pengoptimuman prestasi untuk konfigurasi kumpulan proses php-fpm

  PHP ialah bahasa pengaturcaraan yang sangat popular dan digunakan secara meluas dalam pembangunan web. Dan php-fpm ialah pengurus proses FastCGI yang disediakan oleh PHP, yang boleh menggunakan sepenuhnya sumber pelayan dan meningkatkan prestasi. Artikel ini akan memperkenalkan cara mengoptimumkan konfigurasi kumpulan proses php-fpm untuk meningkatkan prestasi aplikasi PHP.

  1. Konsep Asas

  Sebelum memahami cara mengoptimumkan konfigurasi kolam proses php-fpm, kita perlu memahami beberapa konsep asas.

 1. Kumpulan proses: php-fpm menguruskan proses penterjemah PHP melalui kumpulan proses. Kumpulan proses ialah unit asas kerja php-fpm Setiap kumpulan proses mempunyai proses induk dan pelbagai proses pekerja.

 2. Proses induk: Bertanggungjawab mengurus penciptaan, pemusnahan dan memulakan semula proses pekerja.

  3. Proses pekerja: Bertanggungjawab untuk memproses permintaan pelanggan dan melaksanakan skrip PHP.

 2. Konfigurasi kumpulan proses

 Fail konfigurasi kumpulan proses php-fpm ialah alat pengoptimuman prestasi yang penting. Kami boleh melaraskan konfigurasi kumpulan proses mengikut situasi sumber pelayan dan keperluan aplikasi. Berikut ialah beberapa pilihan konfigurasi kolam proses yang biasa digunakan:

  1. pm: kaedah pengurusan proses

 Item konfigurasi pm digunakan untuk menentukan kaedah pengurusan proses. Nilai yang biasa digunakan ialah:
 - statik: Mod statik, memulakan bilangan tetap proses pekerja untuk mengendalikan permintaan static:静态方式,启动固定数量的worker进程来处理请求;
  - dynamic:动态方式,根据请求量动态调整worker进程的数量;
  - ondemand - dinamik: Mod dinamik, melaraskan pekerja secara dinamik mengikut; kepada bilangan permintaan Bilangan proses

  - ondemand: Mod atas permintaan, memulakan proses pekerja hanya apabila diperlukan.

 Nilai item konfigurasi pm akan mempengaruhi prestasi kumpulan proses. Kaedah statik sesuai untuk persekitaran dengan volum permintaan yang stabil, yang boleh mengelakkan penciptaan dan pemusnahan proses yang kerap, kaedah dinamik sesuai untuk persekitaran dengan turun naik yang besar dalam volum permintaan, dan bilangan proses boleh diselaraskan secara automatik mengikut permintaan; kelantangan; kaedah atas permintaan sesuai untuk persekitaran dengan persekitaran permintaan yang kecil, proses boleh dimulakan mengikut keperluan.
  1. pm.max_children: Had atas bilangan proses pekerja

 Item konfigurasi pm.max_children digunakan untuk mengehadkan bilangan proses pekerja. Tetapan nilai ini perlu dilaraskan mengikut keadaan sumber pelayan. Jika tetapan terlalu tinggi, ia akan menduduki terlalu banyak memori dan menyebabkan beban sistem menjadi terlalu tinggi jika tetapan terlalu rendah, permintaan tidak akan diproses dalam masa.
  1. pm.start_servers: Bilangan proses pekerja yang mula dimulakan

 Item konfigurasi pm.start_servers digunakan untuk menentukan bilangan proses pekerja yang mula dimulakan. Apabila volum permintaan adalah besar, prestasi boleh dipertingkatkan dengan meningkatkan nilai ini dengan sewajarnya. Adalah disyorkan bahawa nilai ini ditetapkan kepada 1/3 daripada pm.max_children.
  1. pm.min_spare_servers dan pm.max_spare_servers: Julat bilangan proses pekerja terbiar

Item konfigurasi pm.min_spare_servers dan pm.max_spare_servers digunakan untuk menetapkan julat bilangan proses pekerja terbiar. Apabila bilangan proses melahu lebih rendah daripada pm.min_spare_servers, php-fpm akan memulakan proses pekerja baharu apabila bilangan proses melahu lebih tinggi daripada pm.max_spare_servers, php-fpm akan memusnahkan proses pekerja yang berlebihan. Menetapkan kedua-dua nilai ini dengan betul boleh mengelakkan pembaziran sumber pelayan.

  3. Contoh konfigurasi

Berikut ialah contoh fail konfigurasi kolam proses php-fpm:

[global]
pid = /var/run/php-fpm.pid
error_log = /var/log/php-fpm.log
log_level = warning

[www]
listen = /var/run/php-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
listen.backlog = 511

user = www-data
group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

request_terminate_timeout = 60s
request_slowlog_timeout = 0s
slowlog = /var/log/php-fpm-slow.log

rlimit_files = 1024
rlimit_core = 0
catch_workers_output = yes
pm.status_path = /status
ping.path = /ping
ping.response = pong

Dalam fail konfigurasi di atas, dengan menentukan pm sebagai dinamik, dan tetapkan pm.max_children kepada 50, serta permulaan yang sepadan dan proses terbiar Julat kuantiti, boleh memberikan prestasi yang lebih baik.

Kesimpulan: Mengoptimumkan konfigurasi kumpulan proses php-fpm boleh meningkatkan prestasi aplikasi PHP. Mengikut situasi sumber pelayan dan keperluan aplikasi, secara rasional menyesuaikan kaedah pengurusan proses dan bilangan proses boleh mencapai prestasi yang lebih baik dan penggunaan sumber. 🎜

Atas ialah kandungan terperinci Pilihan pengoptimuman prestasi untuk konfigurasi kumpulan proses php-fpm. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn