构建高性能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

High Performance Django的更多相关文章

  1. Awesome Django

     Awesome Django    If you find Awesome Django useful, please consider donating to help maintain it. ...

  2. Django 优秀资源大全

    版权: https://github.com/haiiiiiyun/awesome-django-cn 转自:https://www.jianshu.com/p/38c4dd6d8e28 Awesom ...

  3. Django performance

    Reference: https://impythonist.wordpress.com/2016/02/21/building-high-performance-django-systems/ Th ...

  4. Python自动化之django的ORM操作——Python源码

    """ The main QuerySet implementation. This provides the public API for the ORM. " ...

  5. Apache部署django项目

    在此之前,我们一直使用django的manage.py 的runserver 命令来运行django应用,但这只是我们的开发环境,当项目真正部署上线的时候这做就不可行了,必须将我们的项目部署到特定的w ...

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

    F() 的执行不经过 python解释器,不经过本机内存,是生成 SQL语句的执行. # Tintin filed a news story! reporter = Reporters.objects ...

  7. win7下,使用django运行django-admin.py无法创建网站

    安装django的步骤: 1.安装python,选择默认安装在c盘即可.设置环境变量path,值添加python的安装路径. 2.下载ez_setup.py,下载地址:http://peak.tele ...

  8. Django Model field reference

    ===================== Model field reference ===================== .. module:: django.db.models.field ...

  9. Django访问量和页面点击数统计

    http://blog.csdn.net/pipisorry/article/details/47396311 下面是在模板中做一个简单的页面点击数统计.model阅读量统计.用户访问量统计的方法 简 ...

随机推荐

  1. PHP_解析xss攻击、sql注入

    /** * PHP解决XSS(跨站脚本攻击)的调用函数 * PHP跨站脚本漏洞补丁,去除XSS(跨站脚本攻击)的函数,把以下代码保存在function.php文件中,在需要防御的页面中include ...

  2. 转!!sql server 数据库 索引的原理与应用

    索引的概念 索引的用途:我们对数据查询及处理速度已成为衡量应用系统成败的标准,而采用索引来加快数据处理速度通常是最普遍采用的优化方法. 索引是什么:数据库中的索引类似于一本书的目录,在一本书中使用目录 ...

  3. 转! java 中“==” 与“ .equals ”比较

    在java程序设计中,经常需要比较两个变量值是否相等.例如1.简单数据类型比较a = 10;b = 10;if(a == b){//写要执行的代码}2.引用数据类型比较ClassA a = new C ...

  4. JavaScript:引用js文件时的编码格式问题

    JavaScript:引用js文件时的编码格式问题 如果js文件的编码格式是utf-8,并且含有中文,那么按照正常的方法引用,就会出现乱码的情况. 方法/步骤   如果js文件的编码格式是utf-8, ...

  5. python unicode字符串

    程序开发中,不同语言文字的显示,不同字符集之间的转换非常麻烦,在python的unicode的使用中,对这点感触颇深.所以,以下总结了python中对unicode字符处理的一些理解. 程序存储.传输 ...

  6. lftp

    linux安装FTP工具 lftp及使用教程 来源:网络 发布时间:2013-05-24 15:21 字体:[大  中  小] 点击2510次 linux下可以直接通过FTP命令进行ftp上传下载,不 ...

  7. dede如何新建一个ajax服务端输出文件

    <?phprequire_once(dirname(__FILE__)."/include/common.inc.php");AjaxHead();    $dsql-> ...

  8. Unity 5 中的全局光照技术详解(建议收藏)

    本文整理自Unity全球官方网站,原文:UNITY 5 - LIGHTING AND RENDERING (文章较长,请耐心阅读)简介全局光照,简称GI,是一个用来模拟光的互动和反弹等复杂行为的算法, ...

  9. java获取本月开始时间和结束时间、上个月第一天和最后一天的时间以及当前日期往前推一周、一个月

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.uti ...

  10. lambda表達式

    lambda简介 lambda运算符:所有的lambda表达式都是用新的lambda运算符 " => ",可以叫他,“转到”或者 “成为”.运算符将表达式分为两部分,左边指定 ...