ฉันมี apache พร้อมโมดูล PHP-FPM, 8 คอร์ CPU โหลด CPU เฉลี่ยทั้งหมดอยู่ที่ประมาณ 75% CPU ส่วนใหญ่เนื่องจาก MySQL เห็นหน้าจอ
ตอนนี้โหลดน้อยกว่าปกติเล็กน้อย
แต่ปัญหาคือเมื่อฉันเปิดหน้าแรกการโหลดจะสุ่มประมาณ 1 วินาที (ฉันเดาว่าเวลาถึงไบต์แรก)
ฉันคิดว่ามันอาจจะรอได้เนื่องจากการเชื่อมต่อ mysql ฯลฯ แต่ดูเหมือนว่าเวลาพิเศษสำหรับการรอคือเวลาก่อนที่ PHP จะได้รับเสียงจาก Apache
ฉันทำการทดสอบที่น่าสนใจสองแบบ:
- ไฟล์ html อย่างง่าย (ไฟล์ว่างที่มีคำบางคำ) ใช้เวลาโหลด 100ms
- ไฟล์ php อย่างง่าย (ไม่มีการเชื่อมต่อกับ mysql ฯลฯ เพียงแค่ไฟล์ php ว่างเปล่าพร้อมเสียงสะท้อนอย่างง่าย) ใช้เวลาโหลดประมาณ 1 วินาที
เห็นได้ชัดว่าปัญหาเกิดจากการรวม php หรือ apache+php
เพราะอะไร และจะแก้ไขอย่างไร
ฉันพยายามเพิ่มการตั้งค่า PHP fpm เช่น
pm = ไดนามิก
pm.max_children = 5
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_requests = 200
ย้ายค่าจากบิตเริ่มต้นขึ้น ใช่ โหลด CPU เพิ่มขึ้นทันทีเกือบ 99% ของ CPU ทั้งหมด แต่ความเร็วไม่คงที่ + โหลดเซิร์ฟเวอร์ทั้งหมด
จะทำอย่างไร?
Btw จาก Apache mod-status ฉันเห็นว่าขณะนี้มีการจัดการ 25 คำขอต่อวินาที (ปกติจะเพิ่มเป็นสองเท่า) และฉันไม่คิดว่าฉันควรรอ 1 วินาทีเพื่อโหลดสคริปต์ php เปล่าที่มี CPU 8 คอร์
เวอร์ชันเซิร์ฟเวอร์: Apache/2.4.29
PHP7.2-fpm
MPM-เหตุการณ์
8vCPU, แรม 16GB
BTW ไฟล์ php เปล่าใช้เวลาประมาณ 3-4 วินาทีเช่นกัน ไม่ใช่แค่ 1 วินาที