php-fpm: giúp hiểu start_servers, min_spare_servers, max_spare_servers


10

Tôi đang cố gắng để điều chỉnh cài đặt php-fpm tôi cho máy chủ của tôi, và tôi gặp khó khăn khi tìm ra những việc cần làm với pm.start_servers, pm.min_spare_serverspm.max_spare_serverscác biến. tôi đang dùngpm = dynamic

pm.max_childrenlà hoàn toàn rõ ràng. Mỗi tiến trình con phục vụ 1 khách hàng web cùng một lúc. Đồng ý. "Máy chủ" là gì? Rõ ràng, dựa trên cấu hình mặc định tôi có, 1 máy chủ có thể phục vụ nhiều hơn 1 con. Giới hạn trên là gì? Tôi nên sử dụng quy tắc nào cho # trẻ em / máy chủ? Hay nó có liên quan gì cả? Trên một số diễn đàn, ai đó đã tuyên bố rằng # máy chủ nên là 2 x # lõi cpu, nhưng tôi đã thấy các cấu hình được đề xuất trong đó số lượng cao hơn nhiều, 40-50.

Cả tài liệu PHP lẫn nhiều bài viết "điều chỉnh php-fpm" ngoài kia đều có ích.

Câu trả lời:


13

Về cơ bản, số lượng tiến trình mà php-fpm sẽ chạy bất cứ lúc nào là rất có thể cấu hình khi bạn đặt thành dynamicnhư bạn làm. Khi được đặt staticở đó, LUÔN LUÔN sẽ có nhiều tiến trình con đang chạy. Nói chung, bạn đặt nó thành động để bảo tồn tài nguyên. Mỗi quá trình con có thể xử lý một yêu cầu. Giới hạn trên phụ thuộc vào mức độ nặng của ứng dụng php của bạn và lưu lượng truy cập bạn nhận được. Bạn cũng nên tính mức tiêu thụ bộ nhớ trung bình của mỗi đứa trẻ và đảm bảo rằng bạn KHÔNG BAO GIỜ cho phép số lượng trẻ em vượt quá số lượng ram được cài đặt trên máy chủ của bạn hoặc bạn sẽ bắt đầu hoán đổi hoặc thậm chí có quá trình giết chết kernel.

; 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:
;             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.
; Note: This value is mandatory.

Khi cài đặt các tùy chọn này, hãy xem xét các điều sau:

  • Yêu cầu trung bình của bạn là bao lâu?
  • Số lượng khách truy cập đồng thời tối đa mà trang web nhận được là bao nhiêu?
  • Trung bình mỗi quá trình trẻ tiêu thụ bao nhiêu bộ nhớ?

3
Rất hữu ích, cảm ơn cho cái nhìn sâu sắc. Cũng hữu ích cho tính toán sử dụng điều này ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'để xem mỗi công nhân có bao nhiêu bộ nhớ. lấy từ Community.webcore.cloud/tutorials/ khăn
Matt The Ninja
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.