การเชื่อมต่อผ่านพร็อกซีที่คงอยู่ยาวนานมักใช้สองซ็อกเก็ต คือของไคลเอนต์และของ upstream worker_connections นับทั้งสองฝั่ง ดังนั้นการคูณด้วย worker_processes จึงไม่ได้ให้คำมั่นเรื่องความจุแก่ผู้ใช้พร็อกซี

เมื่อการเชื่อมต่อล้มเหลว ให้ทำตามขีดจำกัดที่รายงาน:

หลักฐานการตั้งค่าหรือสถานะโปรเซสที่ต้องตรวจ
worker_connections หมดงบการเชื่อมต่อของ worker รวมถึงซ็อกเก็ต upstream
ข้อความของระบบปฏิบัติการ “ไฟล์เปิดมากเกินไป”ขีดจำกัดไฟล์ดีสคริปเตอร์ที่โปรเซสบริการจริงสืบทอดมา

ซ็อกเก็ตรอรับ ล็อก และไฟล์เปิดอื่น ๆ ก็ใช้ดีสคริปเตอร์เช่นกัน การใช้การเชื่อมต่อซ้ำและส่วนผสมของทราฟฟิกเปลี่ยนความสัมพันธ์ระหว่างผู้ใช้กับซ็อกเก็ต

worker_rlimit_nofile ปรับขีดจำกัดของ worker ภายใต้สิทธิ์ของสภาพแวดล้อม หน่วย systemd ตั้ง LimitNOFILE ได้ ส่วน ulimit ในเชลล์แบบโต้ตอบไม่เปลี่ยนบริการที่กำลังทำงาน

กำหนดขนาดขีดจำกัดตามภาระงาน และตรวจว่าใครใช้ขีดจำกัดเหล่านั้น ไคลเอนต์ที่ไม่คาดคิดหรือการเชื่อมต่อ upstream ที่ล้มเหลวซ้ำ ๆ อาจทำให้งบที่เคยเพียงพอหมดไป การเพิ่มจำนวนโปรเซสหรือขีดจำกัดหน่วยความจำไม่ได้แก้ปัญหาดีสคริปเตอร์ไม่พอ

บทความที่เกี่ยวข้อง