मैं एक EC2 उदाहरण में nginx कॉन्फ़िगरेशन का अनुकूलन करना चाहूंगा। लक्ष्य एक रेल / गेंडा ऐप (ओं) में यथासंभव समवर्ती उपयोगकर्ता अनुरोधों की सेवा करना है
इंस्टेंस चश्मा
vCPU(s): 2
ECU: 6.5
MEMORY: 17.1 GB
वर्तमान में कॉन्फ़िगरेशन:
worker_processes = 4
worker_connections = 12288
निगरानी उपकरण रिपोर्ट:
Memory usage: Around 80%
CPU usage: Around 20%
क्या वर्तमान सीपीयू और उपलब्ध मेमोरी के साथ नगेंक्स में बेहतर प्रदर्शन प्राप्त करना संभव है? अग्रिम में धन्यवाद।
उत्तर:
जवाब के लिए 2 № 1अंगूठे का एक सामान्य नियम जो मैं nginx + गेंडा सेटअप के लिए अनुसरण करता हूं, वह इस प्रकार है:
नगनेक्स कार्यकर्ता प्रक्रियाओं = कोर की संख्या
नग्नेक्स कार्यकर्ता कनेक्शन = वास्तव में उच्च संख्या (10000+)। यह आपके रखे हुए समय पर निर्भर करता है, लेकिन यह बहुत मायने रखता है कि आपके पास बहुत सारे कनेक्शन उपलब्ध होने चाहिए।
गेंडा कार्यकर्ता प्रक्रियाएं: न्यूनतम कोर की संख्या है। अगर प्रक्रियाएँ अपेक्षाकृत हल्की होती हैं (उपलब्ध रैम को छोड़कर) तो मैं इसे बढ़ाता हूँ।
यह समझने में थोड़ी मुश्किल है कि वास्तव में ईसी 2 उदाहरण पर आपके पास कितने कोर हैं, इसलिए यह उस समय आता है जब यह थोड़ा अधिक परीक्षण और त्रुटि आधारित ट्यूनिंग है।