首先,我对我的 Django 驱动网站的性能没有任何不满,它没有获得大量流量,到目前为止每天访问量超过 1000 次。
我很好奇它在应对流量高峰时的表现如何,所以我使用 ab-tool 进行了一些基准测试。
我注意到并发大于 1 时的性能提供与 1 个并发连接相同数量的请求。
reqs/s 不应该随着并发的增加而增加吗?
我在具有 1 GB RAM、apache2(prefork)、mod_wsgi、memcached 和 mysql 的虚拟机上。
页面上的所有内容都已被缓存,数据库没有任何命中。如果 memcached 会删除该条目,则只有 2 个轻量(索引)查询 - 并且应该立即重新缓存。
基准数据:(注意:我确实用 2000 和 10k 个请求对它进行了基准测试,结果相同)
对于起始页,django 通过 apache2/mod_wsgi 提供服务:
-n100 -c4: http://dpaste.com/97999/ (58.2 reqs/s)
-n100 -c1: http://dpaste.com/97998/ (57.7请求/秒)
对于 robots.txt,直接来自 apache2:
-n100 -c4: http://dpaste.com/97992/ (4917 reqs/s)
-n100 -c1: http://dpaste.com/97991/ (1412 reqs/s )
这是我的 apache conf:http ://dpaste.com/97995/
编辑:添加了更多信息
wsgi.conf:http ://dpaste.com/98461/
mysite.conf:http ://dpaste.com/98462/
我的 wsgi 处理程序:
import os, sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()