सबसे पहले मैं अपने डीजेगो संचालित साइट के प्रदर्शन से नाखुश नहीं हूं, इसे बड़े पैमाने पर यातायात नहीं मिल रहा है, अब तक प्रति दिन 1000 से ज्यादा बार दौरे हैं।Django (apache2 prefork/mod_wsgi) में समरूपता का प्रदर्शन, मैं क्या गलत कर रहा हूं?
मैं उत्सुक था कि यह भारी ट्रैफिक चोटियों से कितना अच्छा सामना करेगा, इसलिए मैंने कुछ बेंचमार्किंग करने के लिए एबी-टूल का उपयोग किया।
मैंने देखा कि जब प्रदर्शन 1 से बड़ा है तो प्रदर्शन 1 समवर्ती कनेक्शन के रूप में अनुरोध की समान राशि प्रदान करता है।
समवर्तीता के साथ reqs/s वृद्धि नहीं करनी चाहिए?
1 जीबी रैम, apache2 (prefork), mod_wsgi, memcached और mysql के साथ वर्चुअल मशीन पर Im।
पृष्ठ पर सभी सामग्री को कैश किया गया है, डेटाबेस कोई हिट नहीं लेता है। और अगर memcached प्रविष्टि छोड़ देंगे, केवल 2 प्रकाश (अनुक्रमित) प्रश्न हैं - और तुरंत फिर से कैश किया जाना चाहिए।
बेंचमार्किंग डेटा: (ध्यान दें: मैं बेंचमार्क यह एक ही परिणाम के साथ 2000 और 10k अनुरोध के साथ किया था):
-n100 -c4: http://dpaste.com/97999/
प्रारंभ पृष्ठ के लिए, apache2/mod_wsgi के माध्यम से Django द्वारा सेवा (58.2 reqs/s)
-n100 -c1: http://dpaste.com/97998/ (57.7 reqs/s)
robots.txt के लिए, apache2 से सीधे:
-n100 -c4: http://dpaste.com/97992/ (4917 reqs/s)
-n100 -c1: http://dpaste.com/97991/ (1412 reqs/s)
यह मेरा अपाचे conf: http://dpaste.com/97995/
संपादित करें: जोड़ा अधिक जानकारी
wsgi.conf: http://dpaste.com/98461/
mysite। conf: http://dpaste.com/98462/
मेरा wsgi-handler:
import os, sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
आप यह इंगित नहीं करते कि अपाचे को प्रीफ़ोर या कार्यकर्ता एमपीएम के साथ संकलित किया गया है या नहीं। आप mod_wsgi द्वारा होस्ट किए गए कॉन्फ़िगरेशन की आपूर्ति नहीं करते हैं, इसलिए यदि आप एम्बेडेड मोड या डिमन मोड का उपयोग कर रहे हैं तो कोई विचार नहीं है। बेंचमार्किंग नमूने के लिए 100 अनुरोधों का उपयोग करने से अच्छे नतीजे भी नहीं मिलेंगे, आमतौर पर आप हजारों का उपयोग करना चाहते हैं। यह भी नहीं बता सकता कि आपने यह सुनिश्चित किया है कि आपने स्टार्टअप देरी को समाप्त कर दिया है। अपाचे/mod_wsgi पाइथन वेब एप्लिकेशन को आलसी लोड करेगा। अगर आपका अनुरोध डेटाबेस के खिलाफ है और क्या यह समस्या है तो भी कोई संकेत नहीं है। अधिक जानकारी की आवश्यकता है। –
अधिक जानकारी जोड़ा गया। मैंने 2000 और 10k अनुरोधों के साथ उसी परिणाम के साथ बेंचमार्क किया। अनुरोध डेटाबेस को बिल्कुल भी हिट नहीं करता है, मैंने यह सुनिश्चित कर लिया है कि सबकुछ कैश किया गया है (memcached), और शीर्ष मुझे केवल उन्हीं अपाचे प्रक्रियाओं को बताता है जो संसाधनों का उपयोग कर रहे हैं। – schmilblick
ओह और वास्तव में हेडर में "prefork" था, ताकि जानकारी प्रदान की गई हो। इसे स्पष्टता के लिए अब पाठ में जोड़ा गया। – schmilblick