Các kịch bản Perl khác nhau (Server Side Includes) đang gọi một mô-đun Perl với nhiều chức năng trên một trang web. EDIT: Các tập lệnh đang sử dụng sử dụng lib để tham chiếu các thư viện từ một thư mục. Trong thời gian bận rộn, các tập lệnh (không phải thư viện) trở thành zombie và quá tải máy chủ.Làm cách nào để tránh zombie trong các tập lệnh Perl CGI chạy dưới Apache 1.3?
Các danh sách server:
319 ? Z 0:00 [scriptname1.pl] <defunct>
320 ? Z 0:00 [scriptname2.pl] <defunct>
321 ? Z 0:00 [scriptname3.pl] <defunct>
Tôi có hàng trăm trường hợp của mỗi người.
EDIT: Chúng tôi không sử dụng ngã ba, hệ thống hoặc exec, ngoài hình thành thị SSI
<!--#exec cgi="/cgi-bin/scriptname.pl"-->
Theo như tôi biết, trong trường hợp này httpd chính nó sẽ là chủ sở hữu của quá trình. MaxRequestPerChild được đặt thành 0 không nên để cha mẹ chết trước khi quá trình con hoàn tất. Cho đến nay chúng tôi đã thấy rằng tạm thời đình chỉ một số tập lệnh giúp máy chủ đối phó với các quy trình không còn tồn tại và ngăn không cho nó rơi xuống, tuy nhiên các quy trình zombie vẫn đang hình thành mà không nghi ngờ gì. Rõ ràng gbacon dường như là gần nhất với sự thật với lý thuyết của mình rằng máy chủ không thể đối phó với tải.
Điều gì có thể dẫn đến httpd bỏ qua các quy trình này? Có cách nào tốt nhất để ngăn chặn những điều này xảy ra không?
Cảm ơn
Trả lời: Điểm đi vào Rob. Như ông nói, các kịch bản CGI tạo ra SSI sẽ không được xử lý bởi SSI. Việc đánh giá của SSI xảy ra trước khi hoạt động của CGI trong chu kỳ yêu cầu Apache 1.3. Điều này đã được sửa với Apache 2.0 và sau đó để CGI có thể tạo ra các lệnh SSI.
Vì chúng tôi đang chạy trên Apache 1.3, cho mỗi lần xem trang, SSI đã chuyển thành các quy trình không còn tồn tại. Mặc dù máy chủ đang cố gắng xóa chúng nhưng nó quá bận rộn với các tác vụ đang chạy để có thể thành công. Kết quả là, máy chủ rơi xuống và trở nên không phản hồi. Là một giải pháp ngắn hạn, chúng tôi đã xem xét tất cả SSI và chuyển một số quy trình sang phía máy khách để giải phóng tài nguyên máy chủ và dành thời gian để dọn dẹp. Sau đó chúng tôi nâng cấp lên Apache 2.2.
bạn cần ném một quả bom ống –
Bắn hai thùng cũng hoạt động tốt. – Nate
Đừng để họ ăn não của bạn nữa. – Hai