2012-09-17 33 views
5

Tôi đang chạy nginx làm giao diện người dùng và php-fpm làm phụ trợ để prcesss các tệp php. Tôi nhận được lỗi "Quá nhiều tệp mở" trên /var/log/php-fpm/error.log của tôi. Tôi đã tăng khó khăn & ulimit mềm đến 65535 và có vẻ như không thể giải quyết được vấn đề.php-fpm Quá nhiều tệp đang mở

/var/log/php-fpm/error.log

[17-Sep-2012 14:43:51] ERROR: failed to prepare the stderr pipe: Too many open files (24) 
[17-Sep-2012 14:43:52] ERROR: failed to prepare the stderr pipe: Too many open files (24) 

ulimit -n

65535 

/etc/php-fpm/www.conf

rlimit_files = 65535 

Trả lời

3

Bạn có thể kiểm tra với lsof (liệt kê các tệp đang mở), có thể cần phải cài đặt nó vì hầu hết các bản phân phối Linux không bao gồm điều này theo mặc định. Nó sẽ cung cấp cho bạn một cái nhìn mà trên đó những người những tập tin mở và các quá trình sở hữu nó (vì vậy bạn có thể grep cho php). làm một số lsof | wc -l để đếm số. Có thực sự là nhiều mở? Hoặc có lẽ lỗi là giống như một triệu chứng của một cái gì đó sâu sắc hơn. Nếu bạn biết chúng là gì, có lẽ điều đó sẽ đưa ra một đầu mối cho lý do tại sao ...

Nhìn vào thực tế là nó đề cập đến STDERR có thể là lỗi liên quan đến ý nghĩa rộng (tham số cấu hình lỗi cho php-fpm?)

Ngoài ra, hãy kiểm tra xem bạn đang sử dụng ổ cắm unix hay tcp, hãy thử tùy chọn tcp trừ khi bạn đang ở trên BSD nơi ổ cắm unix được cho là hoạt động nhanh hơn.

+1

Cảm ơn Gleen, tôi đã tăng Giới hạn mở FD ở Cấp hệ điều hành Linux và giải quyết được sự cố. http://www.cyberciti.biz/faq/linux-unix-nginx-too-many-open-files/ – Ryan

Các vấn đề liên quan