码迷,mamicode.com
首页 > 其他好文 > 详细

对Gunicorn文档的学习

时间:2020-04-28 23:11:46      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:cpu   greenlet   扩展   设计   缺点   安装源   覆盖   ado   好处   

安装

安装方式

  • 安装最新版本
    • pip install gunicorn
  • 安装源代码
    • pip install git+https://github.com/benoitc/gunicorn.git
  • 系统安装
    • sudo apt-get install gunicorn

设计 Worker 类型

根据同步、异步设计 Worker。如果需要异步worker,需要安装 Eventlet 或 Gevent。

  • gunicorn[eventlet] - Eventlet-based greenlets
  • gunicorn[gevent] - Gevent-based greenlets
  • gunicorn[gthread] - Threaded
  • gunicorn[tornado] - Tornado-based workers, not recommended

运行 Gunicorn

运行方式

  • 命令
    • gunicorn [OPTIONS] APP_MODULE
  • 利用类似Django、Pyramid、TurboGears或Flask Web框架

配置

配置方式

  • Web框架的配置文件。她只能影响到指定应用程序
  • 命令行中可选指定的配置文件。它能覆盖掉Web框架的配置。
  • 命令行中通过参数配置。它是配置最开始被考虑的位置。

参考概念

进程、线程、协程的区别

Linux中,程序中创建的线程(也称为轻量级进程,LWP)会具有和程序的PID相同的“线程组ID”。

协程又称为微线程。英文名Coroutine,协程是一种用户态的轻量级线程。

  • 协程的好处
    无需线程上下文切换的开销
    无需原子操作(不会被线程调度机制打断的操作)锁定以及同步的开销
    方便切换控制流,简化编程模型
    高并发+高扩展性+低成文:一个CPU支持上完的协程都不是问题,所以很适合高并发处理

  • 协程的缺点
    无法利用多核资源:协程的本质是单线程,需要和进程配合才能运行在多CPU上
    进行阻塞(Blocking)操作(如IO时)会阻塞掉整个程序

  • 协程的条件
    必须在只有一个单线程里实现并发
    修改共享数据不需加锁
    用户程序里自己保存多个控制流的上下文栈
    一个协程遇到IO操作自动切换到其它协程

对Gunicorn文档的学习

标签:cpu   greenlet   扩展   设计   缺点   安装源   覆盖   ado   好处   

原文地址:https://www.cnblogs.com/daemonFlY/p/12797864.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!