High Performance Django

构建高性能Django站点
  性能 可用 伸缩 扩展 安全
build
1、审慎引入第三方库(是否活跃、是否带入query、是否容易缓存)

2、db:减少query次数

    减少耗时query

    减小返回集

    缓存查询结果   johnny.cache

    读写分离

3、模板:俄罗斯套娃式缓存

4、耗时操作异步处理  celery

5、前端:压缩js/css   django-pipeline/django-compressor

      分析性能     Django Debug Toolbar/YSlow/PageSpeed

      压缩图片     pngcrush

      压缩上传图片 easy-thumbnails

CDN  

    


重点在测试

1、单元测试

2、代码覆盖率

3、代码规范 - pep8

4、功能测试 - Selenium

5、压力测试 - Jmeter

django-discover-jenkins可以同时输出上述指标

  1、settings文件分base、dev、deploy  
deploy
1、操作系统用Ubuntu LTS

2、配置合适varnish参数

3、配置合适uwsgi参数

4、配置合适数据库参数

5、优化缓存  django-redis

6、监控实时性能  Graphite


1、配置管理工具 ansible/salt

2、进程管理工具 系统的upstart/systemd,第三方的daemontools/supervisord

3、脚本执行代码更新过程  Fabric

4、检查是否有单点故障 chaos monkey

5、缓存:   防止缓存key过期而涌入db   django-newcache

       缓存服务器宕机可能返回500   django-ft-cache

6、监控出现异常错误   Nagios/Riemann

集群   检查安全性  django-secure
lanuch  
1、新系统先小范围试运行后,再推广

2、更新代码,先更新集群中部分机器(当然session要通用)

3、准备好可以回滚

     
ahead
监控各重要部件:

1、varnish命中率  varnishstat

2、uwsgi   uwsgitop

3、消息队列    celery的inspect命令

4、缓存   memcache-top

      确保开启了定时持久化功能

5、数据库   pg_top/mytop

时间: 2024-11-07 13:10:03

High Performance Django的相关文章

Django performance

Reference: https://impythonist.wordpress.com/2016/02/21/building-high-performance-django-systems/ The main motto of Django web framework is: The web framework for perfectionists with deadlines It is true. Django always gives a polished product within

Apache部署django项目

我想这应该是很普遍的一篇文章,百度了一下确实有不少相关的文章,居然还在讲用“mod_python” , 我也是醉了.在些过程中颇费了些力气.在些记录. ---------------------------------------------- 在此之前,我们一直使用django的manage.py 的runserver 命令来运行django应用,但这只是我们的开发环境,当项目真正部署上线的时候这做就不可行了,必须将我们的项目部署到特定的web服务器上. 安装apache Apache是非常有

django - from django.db.models import F - class F

F() 的执行不经过 python解释器,不经过本机内存,是生成 SQL语句的执行. # Tintin filed a news story! reporter = Reporters.objects.get(name='Tintin') reporter.stories_filed += 1 reporter.save() # 等于 from django.db.models import F reporter = Reporters.objects.get(name='Tintin') re

django部署到apache上

网上把django部署到apache的文章挺多的,但是按照大家的操作,并没有一次就成功,还是遇到了一些问题,这里主要有以下几个情况. 1.网上找到的mod_wsgi的版本问题,导致动态库加载不上. 2.配置问题,因为涉及到apache.python和mod_wsgi的版本,所以配置上可能也不太一样. 这里我把我遇到的问题和解决方案比较详细的写下来.失败经历可跳过. 失败经历 我的环境是python2.7.11 64位版本,apache我选择的是2.4.20x 64位版本,这里有一点必须要保证的是

Django项目部署 - 访问量统计和页面点击数

http://blog.csdn.net/pipisorry/article/details/47396311 下面是在模板中做一个简单的页面点击数统计.model阅读量统计.用户访问量统计的方法 简单的模板页面计数的实现 模板中设置: <li>您是第{{count}}个访问本站的朋友</li> <li>访问时间:{{time}}</li> view.py中 def getTime():#获取当前时间 import time return time.ctim

window7配置python3.3 + django + apache24 + mod_wsgi

window7安装配置python3.3 + django + apache24 + mod_wsgi 1.下载版本的时候要对应 2.apache24 别放系统盘, 不然权限很麻烦 3.django + apache24 + mod_wsgi ,因为是最新版本,所以和网上的那些有点不样,这个地方百度好久 安装python3.3: https://www.python.org/downloads/ 增加Path环境变量C:\Python33; 下载ez_setup.py(这个东东可以让你安装pyt

[django] Deploy Django Applications Using uWSGI and Nginx on Ubuntu 14.04

关键点1:chmod-socket=666 (mysite_uwsgi.ini) 关键点2 : 工程目录和虚拟环境目录搞清楚 几个参考: http://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-uwsgi-and-nginx-on-

Django urls配置

浏览器向web服务器请求url地址时,urls.py文件中的patterns方法进行响应,响应的方法是通过url方法进行匹配的,匹配的过程中需要传入4个参数,4个参数的作用如下: url(路径,视图,其它,name) 路径:使用regex的方式进行路径字符串匹配的 视图:是通过app下的views中的函数定义的 其它:可以传递任意参数到目标view name:可以将此处的参数传递给特殊的templates中(templates后面再将,它是Django特有的编程模式--MVT,MVT编程模型中需

Choosing web framework: ASP.NET MVC vs Django Python vs Ruby on Rails(转载)

来源:http://podlipensky.com/2012/06/choosing-web-framework-asp-net-mvc-vs-django-python-vs-ruby-on-rails/ How often do you emerge from you cubicle to look around, note new faces or new facial expression on old ones? How often do you emerge from you tec