Ý nghĩa của những gì AH00485: bảng điểm là đầy đủ, không phải tại MaxRequestWorkers '?


25

Môi trường của tôi

  • CentOS 6.4 X86_64
  • Apache 2.4.4
  • PHP 5.4.16 (FPM)
  • 2 Intel Xeon E5-2620 @ 2.00GHz (8 lõi, 16 luồng trong mỗi bộ xử lý)
  • Bộ nhớ đăng ký RAM 48GB.
  • 3 Đĩa cứng 15RPM 145GB trong RAID0 (bằng BIO

Biến thú vị

    <IfModule mpm_event_module>
        StartServers             2
        ThreadLimit             196
        MinSpareThreads         96
        MaxSpareThreads        192
        ThreadsPerChild         96
        MaxRequestWorkers      192
        MaxConnectionsPerChild   96
    </IfModule>

Trạng thái máy chủ Apache

Phiên bản máy chủ: Apache / 2.2.4 (Unix) OpenSSL / 1.0.1e mod_fastcgi / mod-fastcgi-SNAP-0910052141
Máy chủ được xây dựng: 24 tháng 5 năm 2013 16:48:07


Thời gian hiện tại: Thứ hai, 17-tháng 6 năm 2013 09:48:11
Thời gian khởi động lại COT : Thứ hai, 17-tháng 6 năm 2013 08:35:14 COT
Parent Server Server Config. Tạo: 1
Máy chủ gốc MPM Tạo: 0 Thời
gian hoạt động của máy chủ: 1 giờ 12 phút 57 giây
Tải máy chủ: 0,05 0,10 0,09
Tổng số lượt truy cập: 14144 - Tổng lưu lượng: 349,7 MB
CPU Cách sử dụng: u.28 s.25 cu0 cs0 - .0121% CPU tải
3,23 yêu cầu / giây - 81,8 kB / giây - 25,3 kB / yêu cầu
1 yêu cầu hiện đang được xử lý, 191 công nhân nhàn rỗi

  PID | Connections       | Threads     | Async connections
      | total | accepting | busy | idle | keep-alive | closing
  ==============================================================
18997 | 3     | yes       | 1    | 95   | 0          | 3
18485 | 0     | yes       | 0    | 96   | 0          | 0
  ==============================================================
Sum   | 3     |           | 1    | 191  | 0          | 3

Nhật ký lỗi

Thông báo lỗi là

[Mon Jun 17 09: 32: 45.680842 2013] [mpm_event: error] [pid 8574: tid 140185091581760] AH00485: bảng điểm đã đầy, không có tại MaxRequestWorkers

Điều này xuất hiện cứ sau vài giây. Tôi không hiểu nó Làm thế nào tôi có thể sửa chữa nó?

Câu trả lời:


18

Chúng tôi đã có cùng một vấn đề trên Apache 2.4.6. Sau khi theo dõi máy chủ và điều chỉnh cài đặt trong vài giờ, có vẻ như Apache có thể có lỗi. Điều dường như xảy ra là các máy chủ thỉnh thoảng xử lý Gtrạng thái (Hoàn thiện một cách duyên dáng) và khởi động lại để chấp nhận các yêu cầu mới, đó là điều bình thường. Điều không bình thường là vì một số lý do, việc này có thể mất đến vài phút để khởi động lại. Nếu bạn chỉ có một vài quy trình máy chủ đang chạy và tất cả chúng đều đi vào Gtrạng thái cùng một lúc thì bảng điểm của bạn sẽ đầy và bạn sẽ không thể phục vụ thêm bất kỳ yêu cầu nào.

Những gì chúng tôi đã làm là tăng số lượng máy chủ để có ít khả năng tất cả chúng sẽ đi vào Gtrạng thái cùng một lúc. Đồng thời đảm bảo rằng bạn phân bổ ít nhất 25 luồng ( MaxRequestWorkers) cho mỗi quy trình máy chủ vì đó có vẻ là mặc định (nghĩa là nếu 5 Serversx 25 ThreadsPerChild= 125 MaxRequestWorkers). Bạn có thể thay đổi ThreadsPerChildnếu bạn thích, chúng tôi để mặc định. Nếu bạn không phân bổ đủ chủ đề, các máy chủ bổ sung sẽ không bắt đầu. Chúng tôi để lại MinSpareThreadsgiá trị mặc định là 25 và mặc định MaxSpareThreadslà 75. Nếu bạn sửa đổi các cài đặt này, giá trị MaxSpareThreadsphải lớn hơn hoặc bằng tổng MinSpareThreadsThreadsPerChild. Cũng MaxRequestWorkersphải bằng hoặc nhỏ hơn ServerLimit.

Đây là những gì làm việc cho chúng tôi nhưng nó có thể không phải là cấu hình tốt nhất cho bạn.

StartServers 3
MinSpareServers 5
MaxSpareServers 10
ServerLimit 250
MaxRequestWorkers 250
MaxConnectionsPerChild 1000
KeepAlive Off

Chỉnh sửa: Đây là một lỗi được xác nhận trong mô-đun mpm_event của httpd có thể không sửa được thông qua cấu hình. Mục nhập bugtracker
được liên kết có một bản vá giả định và thảo luận thêm về cách sửa lỗi này cho đến khi một phiên bản mới của mô-đun sự kiện được phát hành chính thức.


MaxConnectionsPerChildCài đặt của bạn quá thấp để sử dụng sản xuất. Hơn nữa, việc đặt nó thành bất kỳ thứ gì khác 0 chỉ có nghĩa là được thực hiện trên Windows vì nó bị rò rỉ bộ nhớ trong.
rustyx

Apache error_log cũng đưa ra gợi ý:MaxRequestWorkers of 40 is not an integer multiple of ThreadsPerChild of 25, decreasing to nearest multiple 25
dhaupin

1
MaxSpareServers / MinSpareServers không áp dụng cho mpm_event. Tôi không chắc ý của bạn ở đây là gì vì các con số quá thấp so với MaxSpareThreads / MinSpareThreads.
Hamish Moffatt

Cũng gặp phải vấn đề này trên Debian khi xoay vòng nhật ký Apache2. Tham khảo support.plesk.com/hc/en-us/articles/ từ
Yves Martin

Bản vá được đề cập trong câu trả lời này đã được hợp nhất trong 2.4.25. Tôi ở đây vì tôi gặp vấn đề, mặc dù tôi đang sử dụng 2.4.25. Rõ ràng, nó xuất hiện trên một tải lại được kích hoạt bởi logrotate và các quy trình tiếp tục ghi vào error.log.1. error.logchỉ đề cập đến tải lại.
Jérôme

3

Nhìn thấy vấn đề tương tự.

Apache 2.4.7-1ubuntu4.4 on Ubuntu 14.04
Server Version: Apache/2.4.7 (Ubuntu)
Server MPM: event
Server Built: Mar 10 2015 13:05:59 

Chúng tôi đặc biệt có thể gây ra hành vi này bằng cách tải lại apache.

Những gì chúng ta thấy sau đó, là một vài quy trình cũ không dừng lại:

root     28192  0.0  0.8 103772  8648 ?        Ss   Mar16   0:03 /usr/sbin/apache2 -k start
www-data  2530  0.3  2.1 865188 21516 ?        Sl   06:26   0:54  \_ /usr/sbin/apache2 -k start
www-data  2531  0.2  2.1 865436 21892 ?        Sl   06:26   0:51  \_ /usr/sbin/apache2 -k start
www-data  3299  0.3  2.0 864140 20628 ?        Sl   06:46   0:51  \_ /usr/sbin/apache2 -k start
www-data  7305  0.3  2.1 865100 21504 ?        Sl   08:36   0:37  \_ /usr/sbin/apache2 -k start
www-data 11952  0.2  1.8 863004 19268 ?        Sl   10:46   0:06  \_ /usr/sbin/apache2 -k start
www-data 13284  0.0  0.6 103772  6692 ?        S    11:18   0:00  \_ /usr/sbin/apache2 -k start
www-data 13553  2.1  2.0 866156 21248 ?        Sl   11:23   0:01  \_ /usr/sbin/apache2 -k start

Lưu ý thời gian bắt đầu 'cũ' và 'mới hơn' và thời gian bắt đầu. ^^

PID Connections     Threads Async connections
total   accepting   busy    idle    writing keep-alive  closing
7305    14  no  0   0   0   0   0
2530    13  no  0   0   0   0   0
3299    7   no  0   0   0   0   0
13553   65  no  17  8   0   25  25
2531    15  no  0   0   0   0   0
11952   10  no  0   0   0   0   0
Sum 124     17  8   0   25  25

GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGW_WWWW__W_W_W_WWWWWWW__WWGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGGGGGGGGGGGG

0

Chúng tôi bắt đầu thấy điều này khi một trong những cơ sở dữ liệu bản sao của chúng tôi ngoại tuyến và bắt đầu hết thời gian. Điều này gắn liền với một chuỗi các luồng trong Apache, rõ ràng cho đến khi mọi thứ khá hỏng và chúng tôi bắt đầu nhận được thông báo này.

Có lẽ không phải là trường hợp bình thường, nhưng tôi gửi nó cho canon với hy vọng nó có thể giúp những người khác thấy lỗi 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.