سؤال

لديّ تطبيق OSQA (Python / Django Q & A) يخدم 8 مواقع مختلفة. المواقع كلها قيد التطوير ، وتتلقى الحد الأدنى من حركة المرور. الخادم هو خادم خاص افتراضي مع 512 ميغابايت من ذاكرة الوصول العشوائي.

يقدم Apache الصفحات الديناميكية فقط مع mod_wsgi خلف Nginx. لا يمكنني إيقاف استهلاك Apache المزيد والمزيد من الذاكرة مع كل طلب حتى يختنق الخادم.

لقد جربت معلمات التكوين دون حظ كبير لتقليل بصمة الذاكرة. مع معلمات mpm_prefork التالية في apache2.conf:

StartServers          2
MinSpareServers       1
MaxSpareServers       4
MaxClients            4
MaxRequestsPerChild 100

تبدأ عمليات Apache 2 باستخدام 4 ميغابايت وبعد الطلب الأول ، هناك 4 عمليات مع كل ما يقرب من 50 ميجابايت ومع كل طلب جديد تتسلق هذه العمليات الأربعة بشكل مطرد إلى ما يقرب من 200 ميجابايت لكل منهما.

أشعر أن هناك خطأ ما يحدث. أي اقتراحات موضع تقدير كبير.

هل كانت مفيدة؟

المحلول

KeepAlive Off
MaxSpareThreads 3
MinSpareThreads 1
ServerLimit 3
SetEnvIf X-Forwarded-SSL on HTTPS=1
ThreadsPerChild 2

WSGIDaemonProcess osqaWSGI processes=2 python-path=/web/osqa_server:/web/osqa_server/lib/python2.6 threads=1 maximum-requests=550
WSGIProcessGroup osqaWSGI

ركض httperf ضد هذا مع 10000 زيارة متزامنة وما زالت قائمة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top