ฉันอ่านเกี่ยวกับ Apache mpm-prefork
การกำหนดค่าและฉันพยายามปรับแต่ง MaxRequestWorkers
พารามิเตอร์.
การตั้งค่าของฉันก่อนการเปลี่ยนแปลงมีดังนี้:
<IfModule mpm_prefork_module>
StartServers 10
MinSpareServers 10
MaxSpareServers 64
ServerLimit 512
MaxRequestWorkers 500
MaxConnectionsPerChild 0
</IfModule>
จากนั้น เนื่องจากการเพิ่มผู้ใช้พร้อมกันในแอปของฉัน ฉันจึงตัดสินใจเพิ่ม MaxRequestWorkers
จาก 500 เป็น 670 และ ลิมิตเซิร์ฟเวอร์
จาก 512 เป็น 700
โชคดีที่ปัญหาการเชื่อมต่อช้าได้รับการแก้ไขโดยใช้การเปลี่ยนแปลงเหล่านี้ แต่เมื่อพิจารณาจากรายงานของ อาปาเช่2บัดดี้
หน่วยความจำกระบวนการเฉลี่ยคือ 16MB ซึ่งหมายความว่า apache อาจต้องการอย่างน้อย 670*16 ~= 10GB
ของแรม ในขณะที่เซิร์ฟเวอร์ของฉันมี RAM เพียง 4GB
ตอนนี้ใช้ ท็อป
การใช้ RAM ประมาณ 2.3GB และการแลกเปลี่ยน 400MB (จาก 1GB ที่มี)
- ทำไม apache ไม่ใช้หน่วยความจำมากขึ้นจริงหรือ?
- การกำหนดค่าใดดีที่สุดในกรณีของฉัน (ใช้จำนวนการประมวลผลประมาณ 600 กระบวนการ)
- การกำหนดค่าของฉันมีผลเสียหรือไม่?
แล้วไง