Score:0

เหตุใดจำนวนเธรดทั้งหมดของ Apache2 จึงมากกว่า MaxRequestWorkers

ธง gb

ฉันเพิ่งย้าย mpm ของฉันจาก perfork เป็นเหตุการณ์ (& ยัง mod_php (php7.0) เป็น php-fpm (proxy_fgi)) ฉันประมาณการโหลดการเชื่อมต่อพร้อมกันสูงสุดที่ประมาณ 300 ดังนั้นฉันจึงตั้งค่าต่อไปนี้ใน mpm_event.conf

สตาร์ทเซิร์ฟเวอร์ 5
MinSpareThreads 25
MaxSpareThreads 75
เธรดลิมิต 64
กระทู้ต่อเด็ก 35
MaxRequestWorkers 350
MaxConnectionsPerChild 0

ตอนนี้ฉันเห็นพฤติกรรมแปลก ๆ เมื่อฉันสังเกตกระบวนการ apache2 และจำนวนเธรดทั้งหมดโดยใช้ ps

โดยปกติฉันมีกระบวนการ apache2 ทั้งหมดประมาณ 12-13 กระบวนการ (ps aux | grep apache2 | สุขา -l). ถือว่าคนหนึ่งเป็นพ่อแม่..ก็ลูกประมาณ10-11ขวบ นอกจากนี้หากฉันเห็นเธรดทั้งหมดนับจาก apache2 ด้วย

ps -o nlwp $(pidof apache2) | หาง -n +2 | awk '{ num_threads += $1 } END { พิมพ์ num_threads }'

ฉันสังเกต 408 เธรดเป็นเวลานาน .. ดังนั้นคำถามของฉันคือ:

  • เป็นไปได้อย่างไรที่จำนวนเธรดทั้งหมดเพิ่มขึ้นเกิน MaxRequestWorkers (350)
  • เป็นไปได้อย่างไรที่ # ของกระบวนการลูกทั้งหมดเพิ่มขึ้นเกินกว่า StartServers (5)
  • อะไรคือเหตุผลสำหรับ 408? (12*34?) และการรับส่งข้อมูลของฉันถึงขีดจำกัดหรือไม่

ขอบคุณสำหรับความช่วยเหลือของคุณล่วงหน้า

Score:0
ธง in

ฉันกำลังสังเกตพฤติกรรมที่คล้ายกัน ด้วยค่าเริ่มต้น MaxRequestWorkers 150 ฉันเข้าถึงเธรดได้มากถึง 301 เธรด นั่นคือ 1 พาเรนต์และ 2* เธรด MaxRequestWorkers

ฉันทดสอบสิ่งนี้โดยตั้งค่า MaxRequestWorkers เป็น 40 และฉันถึง 81

ใครสามารถยืนยันพฤติกรรม Apache นี้ได้บ้าง

ป.ล. ฉันใช้ Apache2 เป็น prefork เช่น ThreadLimit และ ThreadsPerChild ไม่ได้ใช้ IMHO

ph flag
สิ่งนี้ไม่ได้ตอบคำถามจริงๆ หากคุณมีคำถามอื่น คุณสามารถถามได้โดยคลิก[ถามคำถาม](https://serverfault.com/questions/ask) หากต้องการรับการแจ้งเตือนเมื่อคำถามนี้มีคำตอบใหม่ คุณสามารถ[ติดตามคำถามนี้](https://meta.stackexchange.com/q/345661) เมื่อคุณมี[ชื่อเสียง](https://serverfault.com/help/whats-reputation) เพียงพอแล้ว คุณยังสามารถ[เพิ่มเงินรางวัล](https://serverfault.com/help/privileges/set-bounties)เพื่อจั่ว ให้ความสนใจกับคำถามนี้มากขึ้น - [จากรีวิว](/review/late-answers/512409)
in flag
สิ่งที่ฉันพูดคือ - ฉันมีจำนวนเธรดที่น่าสงสัยถึง 2* MaxRequestWorkers + 1 (เธรดหลัก) คำขอของลูกค้าทุกคนแยกเธรดอื่นอาจเป็นเพราะใช้ php เนื่องจากฉันใช้ Apache ในโหมด prefork ฉันจึงไม่แน่ใจเหมือนกันว่า MPM ของเหตุการณ์จะเหมือนกัน

โพสต์คำตอบ

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