Kami sering menggunakan php-fpm, tetapi tidak semua orang tahu bahawa fpm mempunyai tiga mod Hari ini Xiaonian akan membawa anda memahami tiga mod fpm anda boleh merujuknya jika anda memerlukannya.
; Choose how the process manager will control the number of child processes. ; Possible Values: ; static - a fixed number (pm.max_children) of child processes; ; dynamic - the number of child processes are set dynamically based on the ; following directives. With this process management, there will be ; always at least 1 children. ; pm.max_children - the maximum number of children that can ; be alive at the same time. ; pm.start_servers - the number of children created on startup. ; pm.min_spare_servers - the minimum number of children in 'idle' ; state (waiting to process). If the number ; of 'idle' processes is less than this ; number then some children will be created. ; pm.max_spare_servers - the maximum number of children in 'idle' ; state (waiting to process). If the number ; of 'idle' processes is greater than this ; number then some children will be killed. ; ondemand - no children are created at startup. Children will be forked when ; new requests will connect. The following parameter are used: ; pm.max_children - the maximum number of children that ; can be alive at the same time. ; pm.process_idle_timeout - The number of seconds after which ; an idle process will be killed. ; Note: This value is mandatory.
pm mempunyai tiga mod: statik, dinamik dan ondemand
Dengan cara ini adalah agak mudah. Pada permulaan, induk mengeluarkan bilangan proses pekerja yang sepadan mengikut konfigurasi pm.max_children, iaitu bilangan proses pekerja ditetapkan.
Pengurusan proses dinamik, mula-mula mulakan bilangan pekerja tertentu mengikut pm.start_servers apabila fpm bermula.
Semasa operasi, jika tuan mendapati bahawa bilangan pekerja terbiar adalah lebih rendah daripada bilangan pm.min_spare_servers yang dikonfigurasikan (menunjukkan bahawa terdapat terlalu banyak permintaan dan pekerja tidak dapat mengendalikannya), ia akan menghentikan pekerja proses, tetapi jumlah pekerja tidak boleh melebihi pm.max_children.
Jika tuan mendapati bahawa bilangan pekerja terbiar melebihi pm.max_spare_servers (menunjukkan bahawa terdapat terlalu ramai pekerja terbiar), ia akan membunuh beberapa pekerja untuk mengelak daripada menduduki terlalu banyak sumber melalui 4 nilai ini.
Kaedah ini biasanya jarang digunakan Proses pekerja tidak diperuntukkan pada permulaan, dan proses induk dimaklumkan untuk menghentikan proses pekerja selepas terdapat permintaan pekerja tidak melebihi pm. max_children, proses pekerja tidak akan keluar serta-merta selepas pemprosesan selesai, dan akan keluar apabila masa melahu melebihi pm.process_idle_timeout.
pm.max_children: Bilangan proses php-fpm dibuka dalam mod statik.
pm.start_servers: Bilangan permulaan proses php-fpm dalam mod dinamik.
pm.min_spare_servers: Bilangan minimum proses php-fpm dalam mod dinamik.
pm.max_spare_servers: Bilangan maksimum proses php-fpm dalam mod dinamik.
php-fpm reload
php-fpm stop
kill SIGUSR1 php-fpm
Gunakan semula fail baharu untuk melengkapkan pemotongan log
kill SIGUSR2 php-fpm
Mulakan semula proses kerja dan muat semula fail konfigurasi
S1: Selepas memulakan proses php-fpm, matikan nombor proses induk php-fpm Bolehkah perkhidmatan diteruskan? J: Tidak (semua proses php-fpm ditutup)
S2: Selepas memulakan proses php-fpm, matikan -9 nombor proses induk php-fpm, bolehkah perkhidmatan diteruskan? J: Ya (hanya proses induk dimatikan, proses kerja masih berfungsi)
S2: Selepas memulakan proses php-fpm, bolehkah perkhidmatan diteruskan selepas mematikan nombor proses kerja php-fpm? J: Ya (selepas proses kerja dimatikan, proses kerja baharu dimulakan)
Pembelajaran yang disyorkan:
php_module_startup()
fcgi_accept_request()
php_request_startup()
fmp_request_executing()
php_execute_script()
fpm_requset_end()
Kerana fpm adalah proses pemastautin, jadi selepas
php_request_shutdown()
ia akan mula bergelung dari
php_request_shutdown()
.fcgi_accept_request()
Atas ialah kandungan terperinci Tiga mod FPM yang kurang dikenali. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!