Apache ngừng phục vụ sau khi đạt đến cài đặt MaxCl Client


11

Tôi có máy chủ apache được cấu hình với MPM worker như sau:

<IfModule mpm_worker_module>
    ServerLimit         20
    ThreadLimit         50
    StartServers        3
    MaxClients          1000
    MinSpareThreads     50
    MaxSpareThreads     200
    ThreadsPerChild     50
    MaxRequestsPerChild 10000
</IfModule>

Máy chủ mất khoảng 2 triệu yêu cầu mỗi ngày. Khi các yêu cầu đến, máy chủ apache sẽ ngừng chấp nhận kết nối mới (trình duyệt không thể kết nối). Và quá trình sẽ vẫn còn trong danh sách quá trình. Việc sử dụng bộ nhớ là khoảng 10% và CPU là 0%. Có vẻ như máy chủ apache không thể tái chế các quy trình khi cần.

Tôi đã tìm thấy một cái gì đó liên quan đến sự cố trong nhật ký lỗi:

[Mon Aug 15 12:36:24 2011] [error] child process 11444 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:24 2011] [error] child process 12090 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:24 2011] [error] child process 10698 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:24 2011] [error] child process 12144 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:24 2011] [error] child process 12032 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:24 2011] [error] child process 10699 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:25 2011] [notice] caught SIGTERM, shutting down
[Mon Aug 15 12:37:31 2011] [notice] mod_python: Creating 8 session mutexes based on 20 max processes and 50 max threads.
[Mon Aug 15 12:37:31 2011] [notice] mod_python: using mutex_directory /tmp 
[Mon Aug 15 12:37:31 2011] [notice] Apache/2.2.17 (Ubuntu) mod_python/3.3.1 Python/2.7.1+ mod_ssl/2.2.17 OpenSSL/0.9.8o configured -- resuming normal operations
[Mon Aug 15 15:36:46 2011] [error] server is within MinSpareThreads of MaxClients, consider raising the MaxClients setting
[Mon Aug 15 15:38:48 2011] [error] server reached MaxClients setting, consider raising the MaxClients setting
[Mon Aug 15 16:17:31 2011] [warn] child process 766 still did not exit, sending a SIGTERM
[Mon Aug 15 16:17:31 2011] [warn] child process 767 still did not exit, sending a SIGTERM

Bất kỳ ý tưởng? Cảm ơn!


bạn đang giữ những thiết lập nào? Bạn có thực hiện một số loại bỏ phiếu dài với ứng dụng của bạn?
regilero

Câu trả lời:


7

Bạn có thể muốn kiểm tra trạng thái máy chủ của mình bằng mod_status. Bạn có thể có các kết nối không ngắt kết nối và bị kẹt trong trạng thái "gửi trả lời" (W). Kiểm tra bài viết này về cách chẩn đoán báo cáo maxdents và modstatus Giải quyết vấn đề này

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.