תקצבו את סוקטי הפרוקסי של NGINX לפני העלאת worker_connections
חיבור proxy תופס בדרך כלל גם סוקט לקוח וגם סוקט upstream; הבדילו בין מגבלת החיבורים של ה-worker למגבלת מתארי הקבצים של השירות.
חיבור proxy ארוך־טווח תופס בדרך כלל שני סוקטים: של הלקוח ושל ה-upstream. worker_connections סופר את שני הצדדים. לכן הכפלתו ב-worker_processes אינה מבטיחה קיבולת למשתמשי ה-proxy.
כשחיבורים נכשלים, פעלו לפי המגבלה המדווחת:
| ראיה | הגדרה או מצב תהליך לבדיקה |
|---|---|
| מיצוי worker_connections | תקציב החיבורים של ה-worker, כולל סוקטי upstream |
| הודעת מערכת ההפעלה „יותר מדי קבצים פתוחים“ | מגבלת מתארי הקבצים שה-process האמיתי של השירות יורש |
גם סוקטי האזנה, לוגים וקבצים פתוחים אחרים צורכים מתארים. שימוש חוזר בחיבורים ותמהיל התעבורה משנים את היחס בין משתמשים לסוקטים.
worker_rlimit_nofile מתאים את מגבלות ה-worker בכפוף להרשאות הסביבה. יחידת systemd יכולה להגדיר LimitNOFILE; ulimit ב-shell אינטראקטיבי אינו משנה את השירות הפעיל.
כווננו את המגבלות לפי עומס העבודה ובדקו מי צורך אותן. לקוחות לא צפויים או חיבורי upstream שנכשלים שוב ושוב עלולים למצות תקציב שהיה מספיק קודם. מספר תהליכים גדול יותר או מגבלת זיכרון אינם מתקנים מחסור במתארים.