เซิร์ฟเวอร์ Nginx 1.20.1 ทำงานเป็นพร็อกซีย้อนกลับซึ่งใช้หน่วยความจำจำนวนมากและทำให้บริการหยุดลงโดยต้องรีบูตระบบ ModSecurity ไลบรารียังกำหนดค่าบน Nginx
คุณจะเห็นในกราฟถัดไปว่าจำนวนการเชื่อมต่อที่สร้างขึ้นจะคงที่ประมาณ 200 ในขณะที่กราฟที่สองแสดงหน่วยความจำที่เพิ่มขึ้นอย่างต่อเนื่องจนกว่าจะถึง 100%
เมื่อฉันกรองผลลัพธ์ของ สูงสุด
สั่งการ คำสั่ง = nginx
เข้าใจแล้ว:
บน - 16:31:18 อัพ 1 วัน 1:54 ผู้ใช้ 2 คน โหลดเฉลี่ย: 0.26, 0.57, 0.66
งาน: ทั้งหมด 179, 2 วิ่ง, 177 นอน, 0 หยุด, 0 ซอมบี้
%Cpu(s): 6.0 us, 0.2 sy, 0.0 ni, 93.4 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : รวม 12,010.4, ฟรี 184.6, ใช้ไป 3818.6, บัฟ/แคช 8007.3
MiB Swap: รวม 975.0, ฟรี 968.7, ใช้ไป 6.3 7858.8 ประโยชน์ Mem
ผู้ใช้ PID PR NI VIRT RES SHR S %CPU %MEM TIME+ คำสั่ง
26553 nginx 20 0 2624044 2.4g 9004 S 7.0 20.3 1:34.85 nginx
26554 nginx 20 0 2625580 2.4g 8932 S 0.7 20.4 0:18.12 nginx
26555 nginx 20 0 2627508 2.4g 8872 S 0.7 20.4 0:04.52 nginx
10284 รูท 20 0 2624568 2.4g 7772 S 0.0 20.3 0:29.08 nginx
26556 nginx 20 0 2624572 2.4g 8812 S 0.0 20.3 0:00.93 nginx
นี่คือผลลัพธ์ของ pmap -d 26553
สั่งการ:
26553: nginx: กระบวนการของผู้ปฏิบัติงาน
ที่อยู่การแมปอุปกรณ์ออฟเซ็ตโหมด Kbytes
0000557a808e7000 164 r---- 0000000000000000 008:00001 nginx
0000557a80910000 824 r-x-- 0000000000029000 008:00001 nginx
0000557a809de000 204 r---- 00000000000f7000 008:00001 nginx
0000557a80a12000 8 r---- 000000000012a000 008:00001 nginx
0000557a80a14000 132 rw--- 000000000012c000 008:00001 nginx
0000557a80a35000 128 rw--- 0000000000000000 000:00000 [ อานนท์ ]
0000557a81b7c000 264740 rw--- 0000000000000000 000:00000 [ อานนท์ ]
0000557a91e05000 1965680 rw--- 0000000000000000 000:00000 [ อานนท์ ]
0000557b09da1000 1536 rw--- 0000000000000000 000:00000 [ อานนท์ ]
00007fefb919a000 292672 rwx-- 0000000000000000 000:00000 [ อานนท์ ]
ฉันรู้สึกว่าไม่ใช่เรื่องปกติที่ Nginx จะใช้หน่วยความจำมากขนาดนั้นเมื่อทำงานเป็นพร็อกซีย้อนกลับ เซิร์ฟเวอร์มี vCPU 4 ตัวและหน่วยความจำ 12GB (เป็น 6GB จนกระทั่งเมื่อสัปดาห์ที่แล้วเมื่อเซิร์ฟเวอร์เริ่มหยุดทำงานและทำให้เซิร์ฟเวอร์ไม่ตอบสนอง) แต่ฉันไม่แน่ใจว่าจะดำเนินการต่อจากที่นี่อย่างไร