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.
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 –
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