อะไรคือความหมายของ“ AH00485: กระดานคะแนนเต็มไม่ใช่ MaxRequestWorkers”?


25

สภาพแวดล้อมของฉัน

  • CentOS 6.4 X86_64
  • Apache 2.4.4
  • PHP 5.4.16 (FPM)
  • 2 Intel Xeon E5-2620 @ 2.00GHz (8 คอร์, 16 เธรดในแต่ละโปรเซสเซอร์)
  • หน่วยความจำที่ลงทะเบียน 48GB RAM
  • 3 ฮาร์ดดิสก์ 15RPM 145GB ใน RAID0 (โดย BIO

ตัวแปรที่น่าสนใจ

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

สถานะเซิร์ฟเวอร์ Apache

เวอร์ชั่นเซิร์ฟเวอร์: Apache / 2.2.4 (Unix) OpenSSL / 1.0.1e mod_fastcgi / mod-fastcgi-SNAP-0910052141
เซิร์ฟเวอร์ที่สร้าง: 24 พฤษภาคม 2013 16:48:07


เวลาปัจจุบัน: วันจันทร์, 17- มิ.ย. -2556 09:48:11 COT
เวลาเริ่มต้นใหม่: วันจันทร์ที่ 17 มิถุนายน 2013 เวลา 08:35:14 น. การกำหนดค่า
เซิร์ฟเวอร์หลัก COT การสร้าง: 1
เซิร์ฟเวอร์หลัก MPM การสร้าง: 0
เซิร์ฟเวอร์เวลาทำงาน: 1 ชั่วโมง 12 นาที 57 วินาที
โหลดเซิร์ฟเวอร์: 0.05 0.10 0.09 การ
เข้าถึงทั้งหมด: 14144 - ปริมาณการ
ใช้งานรวม: 349.7 MB การใช้ CPU: u.28 s.25 cu0 cs0 - .0121% CPU โหลด
3.23 คำร้องขอ / วินาที - 81.8 kB / วินาที - 25.3 kB / คำขอ
1 คำขอที่กำลังดำเนินการอยู่ในขณะนี้, 191 คนทำงานไม่ได้ใช้งาน

  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

บันทึกข้อผิดพลาด

ข้อความแสดงข้อผิดพลาดคือ

[จันทร์ 17 มิถุนายน, 09: 32: 45.680842 2013] [mpm_event: ข้อผิดพลาด] [pid 8574: tid 140185091581760] AH00485: กระดานคะแนนเต็มไม่ใช่ MaxRequestWorkers

สิ่งนี้จะปรากฏขึ้นทุกสองสามวินาที ฉันไม่เข้าใจ ฉันจะแก้ไขได้อย่างไร

คำตอบ:


18

เรามีปัญหาเดียวกันกับ Apache 2.4.6 หลังจากตรวจสอบเซิร์ฟเวอร์และปรับการตั้งค่าเป็นเวลาหลายชั่วโมงดูเหมือนว่า Apache อาจมีข้อผิดพลาด สิ่งที่ดูเหมือนจะเกิดขึ้นคือกระบวนการเซิร์ฟเวอร์บางครั้งจะเข้าสู่Gสถานะ (จบอย่างสง่างาม) และรีสตาร์ทเพื่อยอมรับคำขอใหม่นั่นเป็นเรื่องปกติ สิ่งที่ไม่ปกติคือด้วยเหตุผลบางอย่างอาจใช้เวลาถึงสองสามนาทีในการรีสตาร์ท หากคุณมีกระบวนการเซิร์ฟเวอร์เพียงไม่กี่ตัวที่ทำงานและพวกเขาทั้งหมดเข้าสู่Gสถานะพร้อมกันกระดานคะแนนของคุณจะเต็มและคุณจะไม่สามารถร้องขอเซิร์ฟเวอร์ได้อีก

สิ่งที่เราทำคือเพิ่มจำนวนเซิร์ฟเวอร์ดังนั้นจึงมีโอกาสน้อยที่เซิร์ฟเวอร์ทั้งหมดจะเข้าสู่Gสถานะพร้อมกัน นอกจากนี้ตรวจสอบให้แน่ใจว่าคุณจัดสรรอย่างน้อย 25 เธรด ( MaxRequestWorkers) สำหรับแต่ละกระบวนการของเซิร์ฟเวอร์เพราะนั่นเป็นค่าเริ่มต้น (เช่นถ้า 5 Serversx 25 ThreadsPerChild= 125 MaxRequestWorkers) คุณสามารถเปลี่ยนได้ThreadsPerChildหากคุณต้องการเราปล่อยไว้ตามค่าเริ่มต้น หากคุณจัดสรรเธรดไม่เพียงพอเซิร์ฟเวอร์เพิ่มเติมจะไม่เริ่มทำงาน เราออกจากMinSpareThreadsที่ค่าเริ่มต้นที่ 25 และเริ่มต้นสำหรับการMaxSpareThreadsซึ่งเป็น 75. ถ้าคุณทำแก้ไขการตั้งค่าเหล่านี้ค่าสำหรับMaxSpareThreadsต้องมากกว่าหรือเท่ากับผลรวมของและMinSpareThreads ThreadsPerChildนอกจากนี้ยังจะต้องเท่ากับหรือน้อยกว่าMaxRequestWorkersServerLimit

นี่คือสิ่งที่ใช้งานได้สำหรับเรา แต่อาจไม่ใช่การกำหนดค่าที่ดีที่สุดสำหรับคุณ

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

แก้ไข: นี่เป็นข้อผิดพลาดที่ยืนยันในโมดูล mpm_event ของ httpd ซึ่งอาจไม่สามารถแก้ไขได้ผ่านการกำหนดค่า รายการbugtracker ที่
เชื่อมโยงมีแพทช์ที่คาดการณ์ไว้และการอภิปรายเพิ่มเติมเกี่ยวกับวิธีแก้ไขปัญหานี้จนกว่าจะมีการเปิดตัวโมดูลเหตุการณ์รุ่นใหม่


MaxConnectionsPerChildการตั้งค่าของคุณต่ำเกินไปสำหรับการใช้งานจริง ยิ่งไปกว่านั้นการตั้งค่าให้เป็นอย่างอื่นที่ไม่ใช่ 0 นั้นหมายถึงการทำบน Windows เท่านั้นเพราะหน่วยความจำรั่วภายใน
rustyx

Apache error_log ยังให้คำแนะนำ:MaxRequestWorkers of 40 is not an integer multiple of ThreadsPerChild of 25, decreasing to nearest multiple 25
dhaupin

1
MaxSpareServers / MinSpareServers ไม่สามารถใช้ได้กับ mpm_event ฉันไม่แน่ใจว่าคุณหมายถึงอะไรที่นี่เพราะตัวเลขต่ำเกินไปที่จะเป็น MaxSpareThreads / MinSpareThreads
Hamish Moffatt

ยังประสบปัญหานี้ใน Debian ที่หมุนบันทึก Apache2 อ้างถึงsupport.plesk.com/hc/en-us/articles/ …
Yves Martin

แพตช์ที่กล่าวถึงในคำตอบนี้ถูกรวมใน 2.4.25 ฉันมาที่นี่เพราะฉันมีปัญหาถึงแม้ว่าฉันจะใช้ 2.4.25 เห็นได้ชัดว่ามันปรากฏบนโหลดเรียกโดย logrotate error.log.1และกระบวนการอย่างต่อเนื่องที่จะเขียนใน error.logกล่าวถึงการรีโหลดเท่านั้น
Jérôme

3

เห็นปัญหาเดียวกัน

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 

โดยเฉพาะเราสามารถทำให้เกิดพฤติกรรมนี้ได้โดยโหลด apache ใหม่

สิ่งที่เราเห็นมีสองกระบวนการเก่า ๆ ที่ไม่หยุด:

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

สังเกตว่า PID ที่ 'เก่ากว่า' และ 'ใหม่กว่า' และเวลาเริ่มต้น ^^

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

เราเริ่มเห็นสิ่งนี้เมื่อหนึ่งในฐานข้อมูลแบบจำลองของเราออฟไลน์และเริ่มหมดเวลา สิ่งนี้เชื่อมโยงเธรดที่มีค่ามากถึงพันล้านในอาปาเช่จนกระทั่งเห็นว่าสิ่งต่าง ๆ แตกหักและเราเริ่มได้รับข้อความนี้

อาจไม่ใช่กรณีปกติ แต่ฉันส่งสิ่งนี้ให้กับ canon ด้วยความหวังว่ามันอาจช่วยคนอื่น ๆ ที่เห็นข้อผิดพลาดนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.