2011-07-20 25 views
9

Tôi đã giải quyết vấn đề này cả ngày và điều đó khiến tôi phát điên. Tất cả kết quả và tìm kiếm của Google ở ​​đây đều dẫn đến kết thúc chết. Tôi hy vọng một người nào đó có thể làm việc với tôi để cung cấp một giải pháp cho bản thân và nạn nhân tương lai. Đây rồi.NGINX + PHP5-FPM segfaults dưới tải cao

Tôi đang chạy một trang web rất phổ biến với hơn 3 triệu lượt xem trang mỗi ngày. Trung bình có 34 lượt xem trang mỗi giây, nhưng thực tế hơn, trong giờ cao điểm, số lượt xem này lên đến hơn 300 lượt xem trang mỗi giây. Hãy nghĩ về những yêu cầu này.

Tôi đang chạy máy chủ Ubuntu 10.04 64 bit với 2 CPU E5620, RAM 12 GB và ổ SSD Micron P300 6Gb/giây. Trong giờ cao điểm, CPU và tải bộ nhớ là trung bình (CPU 20-30% và một nửa bộ nhớ được sử dụng).

Phần mềm hỗ trợ trang web này là: NGINX, MySQL, PHP5-FPM, PHP-APC và Memcached. Ok, bây giờ cuối cùng là thịt của bài đăng, đây là nhật ký lỗi của tôi. Có một loạt các lỗi này được ghi lại.

/var/log/php5-fpm

20 tháng 7 14: 49: 47,289895 [THÔNG BÁO] fpm đang chạy, pid 29373

20 tháng 7 14: 49: 47,337092 [THÔNG BÁO] sẵn sàng để xử lý các kết nối

Jul 20 14: 51: 23.957504 [ERROR] [pool www] không thể truy xuất hoạt động của một hoặc nhiều (các) con. Sẽ thử lại sau.

Tháng Bảy 20 14: 51: 41,846439 [CẢNH BÁO] [hồ bơi www] con 29.534 thoát với mã 1 sau 114,518174 giây từ đầu

Tháng Bảy 20 14: 51: 41,846797 [THÔNG BÁO] [hồ bơi www] con 29.597 bắt đầu

Tháng Bảy 20 14: 51: 41,896653 [CẢNH BÁO] [hồ bơi www] con 29.408 thoát trên tín hiệu 11 SIGSEGV sau 114,596706 giây từ đầu

Tháng Bảy 20 14: 51: 41,897178 [THÔNG BÁO] [hồ bơi www] con 29.598 đã bắt đầu

Jul 20 14: 51: 41.903286 [WARNING] [Hồ bơi www] con 29.398 thoát với mã 1 sau 114,605761 giây từ đầu

20 tháng 7 14: 51: 41,903719 [THÔNG BÁO] [hồ bơi www] con 29.600 bắt đầu

20 tháng 7 14: 51: 41,907816 [CẢNH BÁO] [hồ bơi www] con 29.437 thoát với mã 1 sau 114,601417 giây từ đầu

20 tháng 7 14: 51: 41,908253 [THÔNG BÁO] [hồ bơi www] con 29.601 bắt đầu

20 tháng 7 14: 51: 41,916002 [CẢNH BÁO] [hồ bơi www] con 29513 đã thoát với mã 1 sau 114.592514 giây từ bắt đầu

Tháng Bảy 20 14: 51: 41,916501 [THÔNG BÁO] [hồ bơi www] con 29.602 bắt đầu

Tháng Bảy 20 14: 51: 41,916558 [CẢNH BÁO] [hồ bơi www] con 29.494 thoát trên tín hiệu 11 SIGSEGV sau 114,597355 giây từ đầu

20 tháng 7 14: 51: 41,916873 [THÔNG BÁO] [hồ bơi www] con 29.603 bắt đầu

20 tháng 7 14: 51: 41,921389 [CẢNH BÁO] [hồ bơi www] con 29.502 thoát với mã 1 sau 114.600.405 giây từ đầu

/var/log/nginx/error.log 2011/07/20 15:48:42 [lỗi] 29.583 # 0: * 569.743 readv() thất bại (104: Connection reset by ngang hàng) trong khi đọc ngược dòng, máy khách: 77.223.197.193, máy chủ: domain.com, yêu cầu: "GET /favicon.ico HTTP/1.1", ngược dòng: "fastcgi: //127.0.0.1: 9000", host: "www. domain.com "

2011/07/20 15:48:42 [lỗi] 29578 # 0: * 571695 readv() không thành công (104: Thiết lập lại kết nối ngang hàng) trong khi đọc ngược dòng, máy khách: 150.70.64.196, máy chủ : domain.com, yêu cầu: "GET/page HTTP/1.0", upstream: "fastcgi: //127.0.0.1: 9000", host: "www.domain.com"

2011/07/20 15:48:42 [lỗi] 29581 # 0: * 571050 readv() không thành công (104: Thiết lập lại kết nối ngang hàng) trong khi đọc ngược dòng, máy khách: 110.136.157.66, máy chủ: domain.com, yêu cầu: "GET/page HTTP/1.1", upstream: "fastcgi: //127.0.0.1: 9000", host: "www.domain.com"

2011/07/20 15:48:42 [lỗi] 29581 # 0: * 564892 readv() không thành công (104: Kết nối lại bằng peer) trong khi đọc ngược dòng, máy khách: 110.136.161.214, server: domain.com, yêu cầu: "GET/page HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000 ", máy chủ:" www.domain.com "

2011/07/20 15:48:42 [lỗi] 29585 # 0: * 456171 readv() không thành công (104: Kết nối được đặt lại bởi ngang hàng) trong khi đọc ngược dòng, máy khách: 93.223.33.135, máy chủ: domain.com, yêu cầu: "GET /favicon.ico HTTP/1.1", ngược dòng: "fastcgi: //127.0.0.1: 9000 ", host:" www.domain.com "

2011/07/20 15:48:42 [lỗi] 29585 # 0: * 471192 readv() không thành công (104: Thiết lập lại kết nối ngang hàng) khi đọc ngược dòng, khách hàng: 74.90.33.142, máy chủ: domain.com, yêu cầu: "GET/page HTTP/1.1", upstream: "fastcgi: //127.0.0.1: 9000", host: "www.domain.com"

2011/07/20 15:48:42 [lỗi] 29580 # 0: * 570132 readv() không thành công (104: Thiết lập lại kết nối ngang hàng) trong khi đọc ngược dòng, máy khách: 180.246.182.191, máy chủ: domain.com, yêu cầu: " GET/page HTTP/1.1 ", upstream:" fastcgi: //127.0.0.1: 9000 ", host:" www.domain.com "

Cuối cùng, tôi muốn chỉ ra rằng tôi đã cố gắng vô hiệu hóa PHP- APC để xem nếu nó là một lỗi với các lựa chọn cacher nhưng các segfaults vẫn tồn tại. Tôi cũng đã cài đặt PHP5-SUHOSIN và tôi cũng vô hiệu hóa nó, nhưng các lỗi vẫn tiếp tục xảy ra.

+0

phiên bản php nào bạn đang sử dụng ... bạn đang nói rằng bạn đã cài đặt apc rồi cung cấp cho chúng tôi chi tiết cấu hình apc hoặc pastebin bạn php.ini và tệp php-fpm.conf sẽ giúp chúng tôi trợ giúp bạn –

+0

Hi Aco, bạn đã bao giờ tìm ra giải pháp cho vấn đề của mình chưa? Nó là bực bội rằng lỗi duy nhất bạn nhận được từ php-fpm là một lỗi seg. – Bretticus

Trả lời

0

2011/07/20 15:48:42 [lỗi] 29583 # 0: * 569743 readv() không thành công (104: Thiết lập lại kết nối ngang hàng) trong khi đọc ngược dòng, máy khách: 77.223.197.193, máy chủ: domain.com , yêu cầu: "GET /favicon.ico HTTP/1.1", ngược dòng: "fastcgi: //127.0.0.1: 9000", máy chủ lưu trữ: "www.domain.com"

đó chỉ là một số vấn đề với cấu hình của bạn cho upstream server/router/khách hàng thiết lập lại? của nginx đã xóa yêu cầu nhưng chạy một trang web gấp 3 lần tải mà bạn mô tả tôi không bao giờ thấy thông báo đó, tài nguyên được yêu cầu thậm chí không được trao cho quá trình php-fpm, một favicon của nó

và cho thư php-fpm các trẻ dường như dừng sau giới hạn 114 giây, đó là giới hạn do tập tin php.ini của bạn đặt ra? lỗi seg trong php thường xảy ra khi sử dụng bộ nhớ cao, tập lệnh php của bạn có thể bị rò rỉ bộ nhớ và cuối cùng sẽ đạt đến giới hạn bộ nhớ, có các quy trình php-fpm phục vụ ít yêu cầu hơn giúp giải quyết rò rỉ bộ nhớ

+0

Tôi đặt memory_limit thành giá trị cao hơn và nó hoạt động. – Flow

0

Xem câu trả lời của tôi ở đây liên quan đến câu hỏi của bạn (khoảng nginx + magento và tải cao)

NGINX-FPM configuration settings for magento

của nó không phải là một câu trả lời trực tiếp mỗi nói, nhưng nó có thể giúp bạn cấu hình nginx của bạn + php-fpm để giúp loại bỏ những lỗi lầm.

1

Vấn đề này chỉ làm tôi vui.

PHP5-FPM đang có segfaults trên hầu hết các con của nó. Trong trường hợp của tôi, chúng tôi có 0bytes có sẵn trên đĩa cứng. Việc băm nhỏ đăng nhập nhanh đã ngăn chặn các segfaults.

0

Bạn đang thể sử dụng Suhosin Disable ths suhosin.ini dưới /etc/php5/fpm/conf.d và khởi động lại php5-fpm dịch vụ

Kiểm tra phiên bản Suhosin và cố gắng cài đặt một số khác.

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