我有一个相当小的(每天大约4.5k的综合浏览量)网站在Django上运行,PostgreSQL 8.3作为数据库.
我使用数据库作为缓存和sesssion后端.为了这个目的,我听说过很多关于使用Memcached的好东西,我肯定想尝试一下.但是,我想确切地知道这种改变会带来什么好处:我想我的网站可能不够大,无法让更好的缓存后端有所作为.关键是:我不会安装和配置memcached,我不想浪费任何时间或非常少的时间.
如何衡量使用db作为缓存后端引入的开销?我看过django-debug-toolbar,但如果我理解正确,那么你不想把它放在生产网站上(你必须设置DEBUG=True
它才能工作).不幸的是,我无法在我的笔记本电脑上重现生产设置(我有不同的操作系统,CPU和更多的RAM).
有没有人对不同的Django缓存/会话后端进行基准测试?有人知道如果我正在做什么会有什么性能差异,例如,每次请求都有一次会话写入?
在我之前的工作中,我们尝试测量缓存对我们正在开发的网站的影响.在同一台机器上,我们对最常用作起始页(对象列表)的10个页面的集合进行了负载测试,以及从~200000池中随机获取的一些对象详细信息页面.差异就像150请求/秒到30000请求/秒,数据库查询下降到每页1-2.
什么是缓存:
会议
在对象列表中为每个单独页面检索的对象列表
次要对象和常见内容(在每页上找到)
对象类别列表和其他分类属性
对象计数器(由cron作业离线计算)
个别物件
通常,我们只使用低级粒度缓存,而不是高级缓存框架.它需要非常仔细的设计(缓存必须在每次数据库状态更改时正确无效,如添加或修改任何对象).