भी नहीं मिल रहा है मैं एक django ऐप की सेवा के लिए nginx + gunicorn का उपयोग कर रहा हूं और इसे EC2 (m1.small इंस्टेंस) पर तैनात किया है।Django + Gunicorn + nginx बहुत खराब प्रदर्शन पैदा करता है। 8 क्यूपीएस
def hi(request):
return HttpResponse('hi', content_type='text/plain')
/hi/
यूआरएल के लिए मैप किया गया:
मैं इस दृष्टिकोण है। तो यह मूल रूप से पर [myurl]/hi
पर आता है।
अब जब मैं परीक्षण लोड इस डोमेन ([myurl]/hi
) loader.io
से, यह और भी 30 सेकेंड परीक्षण से अधिक 250 ग्राहकों में नहीं होता है। (प्रति सेकंड लगभग 8 अनुरोध)
This is (मेरा हिस्सा) मेरी nginx access.log फ़ाइल। यह मूल रूप से कुछ 200
एस के बाद 499
एस देता है। (Loader.io में टाइमआउट 10 सेकेंड पर सेट है)
मुझे कुछ गंभीरता से गलत करना होगा। मैं कैसे जानूं?
मैं इसे yet-another-django-profiler
का उपयोग कर और निम्न उत्पादन होता है प्रोफाइल:
मैं लचीला बीनस्टॉक (जो अपाचे सर्वर का उपयोग करता) भी (m3.large उदाहरण) पर इस Django अनुप्रयोग तैनात है, और वहाँ भी मैं भयानक प्रदर्शन प्राप्त । अब तक मेरे मिडलवेयर है: यह की
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
# 'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
# 'silk.middleware.SilkyMiddleware',
# 'yet_another_django_profiler.middleware.ProfilerMiddleware',
# 'debug_toolbar.middleware.DebugToolbarMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
# 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
# 'django.contrib.messages.middleware.MessageMiddleware',
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
# 'django.middleware.security.SecurityMiddleware',
)
इससे पहले कोई भी टिप्पणी की गई थी। जब मैंने इन 9 लाइनों पर टिप्पणी की, तो मुझे एक प्रदर्शन बढ़ावा मिला। अब मैं इस ऐप से 60 क्यूपीएस प्राप्त कर सकता हूं। लेकिन मुझे लगता है कि मैं और अधिक गलती कर रहा हूं और यह आगे बढ़ सकता है।
मेरा पहला अनुमान यह होगा कि आपने सिस्टम को गलत कॉन्फ़िगर किया है। उदाहरण के लिए हो सकता है कि आपके पास बंदूकधारी के लिए [पर्याप्त कार्यकर्ता थ्रेड निर्दिष्ट नहीं किया गया है] (http://gunicorn-docs.readthedocs.org/en/latest/design.html#how-many-workers)। यदि आप पहले से ही कवर कर चुके हैं, तो आपको अपनी बाधा झूठ बोलना शुरू कर देना चाहिए - सीपीयू, रैम, डिस्क या नेटवर्क। लोड होने के दौरान कुछ CPU और प्रतिक्रिया समय प्रदान करना (उदा। 'Vmstat' से' और 'tcpdump' से अनुरोध/प्रतिक्रिया समय को देखकर) इस बिंदु पर सहायता करेगा। –
1. गनिकोर्न लॉन्च करने के लिए आप किस कमांड का उपयोग कर रहे हैं? 2. आपकी सेटिंग्स फ़ाइल किस तरह दिखती है (विशेष रूप से मिडलवेयर)? 3।उस सर्वर पर और क्या चल रहा है? – Seth
@ सेठ: हाँ, मिडलवेयर समस्या का हिस्सा था। सर्वर पर और कुछ नहीं चल रहा है। इसके अलावा मैं गनिकोर्न लॉन्च कर रहा हूं [इस स्क्रिप्ट के साथ] (http://pastebin.com/DezHbyiC)। – kamalbanga