ฉันเพิ่งย้าย 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?) และการรับส่งข้อมูลของฉันถึงขีดจำกัดหรือไม่
ขอบคุณสำหรับความช่วยเหลือของคุณล่วงหน้า