Php fpm sử dụng quá nhiều bộ nhớ

Khu đổi mới để thử nghiệm các công nghệ tiên tiến của chúng tôi trước khi chúng chính thức được tung ra thị trường
  • Các sự kiện trong Hệ sinh thái của chúng tôi Tìm tất cả các sự kiện dành riêng cho hệ sinh thái đối tác của chúng tôi. hội thảo trên web, hội nghị, v.v.
  • Đào tạo & Chứng nhận Phát triển chuyên môn của bạn với chương trình đào tạo và chứng chỉ dành cho các thành viên Chương trình Đối tác OVHcloud.
  • Truy cập nhanh

    • Tìm một người bạn đồng hành
    • Đăng ký Chương trình Đối tác OVHcloud
    • Đăng ký Chương trình Khởi động OVHcloud
    • So sánh giá
    • Cổng đối tác
    • Câu hỏi thường gặp Chương trình đối tác
  • Về
    • Quay lại trình đơn
    • Về

      Về
      • Chúng ta là ai
      • Tin tức
      • trung tâm dữ liệu của chúng tôi
      • Tham gia cuộc phiêu lưu OVHcloud
      • Cam kết bằng sáng chế
      • Hợp pháp
    • Truy cập nhanh

      • Thông tin thêm về OVHcloud
      • Quan hệ đầu tư
    1. Tài liệu và hướng dẫn
    2. đám mây web
    3. OVHcloud Web PaaS được cung cấp bởi Nền tảng. sh
    4. PHP
    5. Định cỡ PHP-FPM

    Định cỡ PHP-FPM

    Đóng góp

    Đăng lại

    Twitter Facebook LinkedIn

    In

    • Định cỡ PHP-FPM
      • Khách quan
      • heuristic
      • Mặc định
      • Đo mức sử dụng bộ nhớ worker của PHP

    PHP

    • Kho lưu trữ Trình soạn thảo được xác thực
    • Tiện ích mở rộng
    • Định cỡ PHP-FPM
    • khung
    • PHP. cài đặt ini
    • Phiên bản Redis tùy chỉnh
    • len
    • Khắc phục sự cố PHP
    • Điều chỉnh hiệu suất
    • Sử dụng Xdebug

    Cập nhật lần cuối ngày 2 tháng 6 năm 2022

    Khách quan

    Web PaaS sử dụng heuristic để tự động đặt số lượng worker của thời gian chạy PHP-FPM dựa trên bộ nhớ có sẵn trong vùng chứa. Phương pháp phỏng đoán này dựa trên các giả định về bộ nhớ trung bình cần thiết để xử lý một yêu cầu. Bạn có thể điều chỉnh các giả định đó nếu ứng dụng của bạn thường sử dụng bộ nhớ nhiều hơn hoặc ít hơn đáng kể

    Lưu ý rằng giá trị này độc lập với

    grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf
    pm.max_children = 2
    
    4 được đặt trong
    grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf
    pm.max_children = 2
    
    5, đây là dung lượng bộ nhớ tối đa mà một quy trình PHP đơn lẻ có thể sử dụng trước khi nó tự động kết thúc. Các ước tính này chỉ được sử dụng để xác định số lượng công nhân PHP-FPM bắt đầu

    heuristic

    Heuristic dựa trên ba tham số đầu vào

    • Bộ nhớ khả dụng cho vùng chứa, tùy thuộc vào kích thước của vùng chứa [_______16,
      grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf
      pm.max_children = 2
      
      7,
      grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf
      pm.max_children = 2
      
      8]
    • Bộ nhớ mà một yêu cầu trung bình dự kiến ​​sẽ yêu cầu
    • Bộ nhớ nên được dành riêng cho những thứ không dành riêng cho yêu cầu [bộ nhớ cho
      grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf
      pm.max_children = 2
      
      0, bộ đệm mã op, một số bộ đệm trang hệ điều hành, v.v. ]

    Số lượng công nhân được tính như

    Mặc định

    Các giả định mặc định là

    • grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf
      pm.max_children = 2
      
      1 cho bộ nhớ trung bình cho mỗi yêu cầu
    • grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf
      pm.max_children = 2
      
      2 cho bộ nhớ dành riêng

    Đây là những giá trị thận trọng có chủ ý sẽ cho phép hầu hết các chương trình chạy mà không cần sửa đổi

    Bạn có thể thay đổi chúng bằng cách sử dụng

    grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf
    pm.max_children = 2
    
    3 và
    grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf
    pm.max_children = 2
    
    4 trong
    grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf
    pm.max_children = 2
    
    5 của mình. Ví dụ: nếu ứng dụng của bạn tiêu thụ trung bình ___06 bộ nhớ cho một yêu cầu, hãy sử dụng

    runtime:
        sizing_hints:
            request_memory: 110
    

    grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf
    pm.max_children = 2
    
    7 có giới hạn thấp hơn là 10 MB trong khi
    grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf
    pm.max_children = 2
    
    8 có giới hạn thấp hơn là 70 MB. Các giá trị thấp hơn giá trị đó sẽ được thay thế bằng các giá trị tối thiểu đó

    Bạn có thể kiểm tra số lượng công nhân PHP-FPM tối đa bằng cách mở phiên SSH và chạy lệnh sau [ví dụ cho PHP 7. x]

    grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf
    pm.max_children = 2
    

    Đo mức sử dụng bộ nhớ worker của PHP

    Để xem các tiến trình công nhân PHP của bạn đang sử dụng bao nhiêu bộ nhớ, bạn có thể mở một phiên SSH và xem nhật ký truy cập PHP

    grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf
    pm.max_children = 2
    
    1

    Trong cột thứ năm, bạn sẽ thấy mức sử dụng bộ nhớ cao nhất xảy ra trong khi từng yêu cầu được xử lý. Mức sử dụng cao nhất có thể sẽ khác nhau giữa các yêu cầu, nhưng để tránh chi phí hiệu suất nghiêm trọng do hoán đổi, gợi ý về kích thước của bạn phải ở đâu đó giữa mức sử dụng bộ nhớ trung bình và trường hợp xấu nhất mà bạn quan sát thấy

    Một cách hay để xác định bộ nhớ yêu cầu tối ưu là sử dụng lệnh sau

    grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf
    pm.max_children = 2
    
    2

    Điều này sẽ in ra một bảng có bao nhiêu yêu cầu đã sử dụng bao nhiêu bộ nhớ, tính bằng KB, cho 5000 yêu cầu cuối cùng đạt được PHP-FPM. [Trên một trang web đặc biệt bận rộn, bạn có thể cần tăng số lượng đó]. Ví dụ, xem xét đầu ra sau

    grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf
    pm.max_children = 2
    
    3

    Điều này chỉ ra rằng phần lớn các yêu cầu [4800] đã sử dụng 2048 KB bộ nhớ. Trong trường hợp này, có khả năng bộ nhớ đệm của ứng dụng đang hoạt động. Hầu hết các yêu cầu đã sử dụng tối đa khoảng 10 MB bộ nhớ, trong khi một số ít sử dụng tới 18 MB và một số rất ít [6 yêu cầu] đạt mức cao nhất là 131 MB. [Trong ví dụ này, đó có thể là xóa bộ nhớ cache. ]

    Một cách tiếp cận thận trọng sẽ đề xuất bộ nhớ yêu cầu trung bình là 16 MB là đủ. Lập trường tích cực hơn sẽ đề xuất 10 MB. Cách tiếp cận tích cực hơn có khả năng cho phép nhiều yêu cầu đồng thời hơn có nguy cơ một số yêu cầu cần sử dụng bộ nhớ trao đổi, do đó làm chậm chúng

    Cơ quan web Pixelant cũng đã xuất bản một công cụ phân tích nhật ký cho Web PaaS cung cấp hình ảnh trực quan tốt hơn về nhật ký truy cập để xác định mức trung bình yêu cầu bộ nhớ đang sử dụng. Nó cũng cung cấp thông tin chi tiết bổ sung về hoạt động của trang web của bạn, có thể đề xuất các địa điểm để tối ưu hóa hơn nữa cấu hình của bạn và cung cấp hướng dẫn về thời điểm tăng kích thước gói của bạn. [Xin lưu ý rằng công cụ này được duy trì bởi bên thứ 3, không phải bởi Web PaaS. ]

    Nếu bạn đang chạy trên PHP 5. x thì đừng bận tâm đến việc điều chỉnh mức sử dụng bộ nhớ worker cho đến khi bạn nâng cấp lên PHP 7. x. PHP 7 hiệu quả hơn rất nhiều về bộ nhớ so với PHP 5 và bạn có thể sẽ cần ít hơn một nửa bộ nhớ cho mỗi tiến trình trong PHP 7

    Bạn có thấy hướng dẫn này hữu ích không?

    có không

    Vui lòng đưa ra bất kỳ đề xuất nào để cải thiện tài liệu này

    Mọi phản hồi của bạn về hình ảnh, nội dung hay cấu trúc, hãy chia sẻ để chúng ta cùng nhau hoàn thiện

    Yêu cầu hỗ trợ của bạn sẽ không được xử lý qua biểu mẫu này. Để thực hiện việc này, vui lòng sử dụng biểu mẫu "Tạo vé"

    Chủ Đề