如何在多线程模式下使用 Gunicorn 运行 Flask

2024-04-09

我有用 Flask 编写的网络应用程序。正如大家所建议的,我不能在生产中使用 Flask。所以我想到了枪与烧瓶.

在 Flask 应用程序中,我正在加载一些机器学习模型。它们的总大小为 8GB。我的 Web 应用程序的并发性可以达到1000 个请求。机器的RAM是15GB。
那么运行这个应用程序的最佳方式是什么?


您可以使用多个工作线程启动应用程序,也可以使用 Gunicorn 启动异步工作线程。

Flask 服务器.py

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

Gunicorn 与 gevent 异步工作者

gunicorn server:app -k gevent --worker-connections 1000

Gunicorn 1个工人12个线程:

gunicorn server:app -w 1 --threads 12

Gunicorn 有 4 个工人(多处理):

gunicorn server:app -w 4

有关 Flask 并发的更多信息,请参见这篇文章:单个 Flask 进程会收到多少个并发请求? https://stackoverflow.com/questions/10938360/how-many-concurrent-requests-does-a-single-flask-process-receive.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在多线程模式下使用 Gunicorn 运行 Flask 的相关文章

  • 箱线图与箱线图有何不同?

    我想知道当我们在海生图书馆中有箱线图时为什么会有箱线图 我知道一件事是箱线图优化了表示数据的方式 特别是对于大型数据集 但我不知道为什么 除此之外 我没有任何充分的理由使用箱线图 箱线图将中位数显示为中心线 第 50 个百分位数 然后将第
  • 将新形状传递给“np.reshape”

    Within numpy ndarray reshape https docs scipy org doc numpy reference generated numpy ndarray reshape html the shape参数是一
  • 日期/时间值的 Django URL 转换器

    我正在尝试使用 Django 内置的 URL 转换器将 URL 中的日期时间字符串转换为视图中的日期对象 如果我手动输入 URL 它们会按预期工作 但尝试为其生成 URL 时找不到匹配项 我的转换器很简单 from django utils
  • 识别 Windows 版本

    我正在编写一个打印出详细 Windows 版本信息的函数 输出可能是这样的元组 32bit XP Professional SP3 English 它将支持 Windows XP 及更高版本 我一直坚持获取 Windows 版本 例如 专业
  • 通过 Python 在 PostgreSQL 中的 unicode 字符串中是否允许空字节?

    unicode 字符串中是否允许空字节 我不问 utf8 我的意思是 unicode 字符串的高级对象表示 背景 我们通过 Python 在 PostgreSQL 中存储包含空字节的 unicode 字符串 如果我们再次读取字符串 字符串会
  • 将图像转换为二进制流

    我的应用程序有两个方面 一方面我使用 C 来使用 Pleora 的 EBUS SDK 从相机读取帧 当第一次接收到该流时 在将缓冲区转换为图像之前 我能够一次读取 16 位流 以便对每个像素执行一些计算 即每个像素都存在一个 16 位数据块
  • 无法将 python 数据框中的列类型从 object 转换为 str

    我已经下载了一个csv文件 然后将其读取到python dataframe 现在所有4列都有对象类型 我想将它们转换为str类型 现在dtypes的结果如下 Name object Position Title object Departm
  • Python 中 Goto 标签的替代方案?

    我知道我不能使用 Goto 我也知道 Goto 不是答案 我读过类似的问题 但我只是想不出解决我的问题的方法 所以 我正在编写一个程序 你必须在其中猜测一个数字 这是我遇到问题的部分的摘录 x random randint 0 100 I
  • 遍历 globals() 字典

    我 尝试 使用globals 在我的程序中迭代所有全局变量 我就是这样做的 for k v in globals iteritems function k v 当然 这样做时 我只是创建了另外 2 个全局变量 k and v 所以我得到这个
  • 带回溯的 Dijkstra 算法?

    In a 相关主题 https stackoverflow com questions 28333756 finding most efficient path between two nodes in an interval graph
  • 如何点击 Google Trends 中的“加载更多”按钮并通过 Selenium 和 Python 打印所有标题

    这次我想单击一个按钮来加载更多实时搜索 这是网站的链接 该按钮位于页面末尾 代码如下 div class feed load more button Load more div 由于涉及到一些 AngularJS 我不知道该怎么做 有什么提
  • 计算素数并附加到列表

    我最近开始尝试使用 python 解决 Euler 项目的问题 并且在尝试计算素数并将其附加到列表中时遇到了这个障碍 我编写了以下代码 但我很困惑为什么它在运行时不输出任何内容 import math primes def isPrime
  • NumPy 数组不可 JSON 序列化

    创建 NumPy 数组并将其保存为 Django 上下文变量后 加载网页时收到以下错误 array 0 239 479 717 952 1192 1432 1667 dtype int64 is not JSON serializable
  • 如何克服 numpy.unique 的 MemoryError

    我正在使用 Numpy 版本 1 11 1 并且必须处理一个二维数组 my arr shape 25000 25000 所有值都是整数 我需要一个唯一的数组值列表 使用时lst np unique my arr 我正进入 状态 Traceb
  • 在Python中计算矩阵乘以其转置(AA^T)的最快方法

    在Python中将矩阵与其转置 AA T 相乘的最快方法是什么 我认为 NumPy SciPy 没有考虑使用例如时涉及的对称性 np dot or np matmul 得到的矩阵总是对称的 所以我可以想象有一个更快的解决方案 None
  • 使用 boto3 将 csv 文件保存到 s3

    我正在尝试写入 CSV 文件并将其保存到 s3 中的特定文件夹 存在 这是我的代码 from io import BytesIO import pandas as pd import boto3 s3 boto3 resource s3 d
  • 如何在特定时间启动Tornado周期性回调?

    目前在我的 Tornado 应用程序中 我正在使用定期调用回调PeriodicCallback每隔一小时 像这样 import tornado ioloop from tornado ioloop import PeriodicCallba
  • Python中如何实现相对导入

    考虑 stuff init py mylib py Foo init py main py foo init py script py script py想要进口mylib py 这只是一个示例 但实际上我只想在父目录中进行模块的相对导入
  • 矩阵求逆 (3,3) python - 硬编码与 numpy.linalg.inv

    对于大量矩阵 我需要计算定义为的距离度量 尽管我确实知道强烈建议不要使用矩阵求逆 但我没有找到解决方法 因此 我尝试通过对矩阵求逆进行硬编码来提高性能 因为所有矩阵的大小均为 3 3 我预计这至少会是一个微小的改进 但事实并非如此 为什么
  • 继承自 NumPy 数组的类如何更改其自身的值?

    我有一个继承自 NumPy n 维数组的简单类 我想要该类的两个方法可以更改该类实例的数组值 其中一种方法应将类实例的数组设置为类实例的列表数据属性的值 另一种方法应将一些列表值附加到类实例的数组中 我不确定如何实现这一点 但我的尝试如下

随机推荐

  • 查找 Javascript 对象中属性的交集

    大家好 我想我有以下两个对象 var obj1 one 232 two 3123 three 3232 var obj2 one 323 three 3444 seven 32 我正在尝试编写一个函数 该函数将返回两个对象中的属性 假设我始
  • 使 ViewGroup 在 Android 上可点击

    我有一个 ViewGroup LinearLayout 其中包含几个 TextView 和一个 ImageView 我想让整个组都可以点击 我尝试过这样的事情 viewGroup setOnClickListener new OnClick
  • HTML 5 游戏是否使用 Canvas 和 Javascript?这种情况下如何防止作弊呢?

    HTML 5 游戏是否使用 Canvas 和 Javascript 这种情况下如何防止作弊呢 例如 如果用户使用 GreaseMonkey 或某些工具来更改脚本 使其每次只向服务器报告完美的游戏分数 该怎么办 我会用我自己的问题来回答你的问
  • 如何使用gdb来探索堆栈/堆?

    谁能给我一个快速概述 给我指出一种检查 C 程序堆栈 和堆 的方法的文档 我认为这应该用 GDB 来完成 但如果有其他更直接的替代方案 那么也应该没问题 Thanks 您可以使用 x 命令转储原始内存 因此 如果您想查看堆栈或堆的位 请尝试
  • gcc 通过 homebrew 没有 --without-multilib 选项

    我想在 Python 3 5 中安装 xgboost 这个需要gcc支持 fopenmp选项 默认gcc不支持 所以我正在使用 brew install gcc without multilib 但我得到Warning gcc this f
  • 将本地文件的内容读取到 Rails 中的变量中

    我想做的就是从本地文件中获取所有内容并将其存储在变量中 如何 File read icon full filename each l r l 只给我一部分 在 PHP 中 我刚刚使用file get contents data File r
  • 硬币兑换 DP 解决方案以跟踪硬币

    尝试为一般的硬币找零问题编写一个 DP 解决方案 该解决方案还可以跟踪使用了哪些硬币 到目前为止 我已经可以为我提供所需的最低数量的硬币 但无法弄清楚如何获取使用了哪些硬币以及使用了多少次 如果使用硬币 我尝试设置另一个带有值的表 布尔值
  • Javascript 域模型对象约定

    如果我必须在 C 中创建域模型对象 我可能会这样做 public class Person Public string Name get set Public string Gender get set Public int Age get
  • 使用文本框自动滚动到底部

    我有一个由 ms access 制作的 mdb 文件 它有一个表单 表单内部有一个大文本框 制作此文本框的目的是通过在文本框中添加消息来显示某些工作的进度 txtStatus value txtStatus value Doing some
  • 如何通过 COM 公开 .netstandard2.0 库以便在 VB6 中使用?

    我有一个 dotnet 核心库 一个框架 4 7 2 库和一个 vb6 应用程序 我想编写一个公共库供他们所有人访问 因此选择 netstandard2 0 我尝试了 netstandard2 0 库和 vb6 之间的 4 7 2 框架包装
  • Grails:两个域对象之间的多重关系

    我正在尝试在 Grails 中的两个域类之间实现两种不同类型的关系 考虑以下 我有两个域类 一个作者类和一个书籍类 其中一个作者拥有很多书籍 class Author String name class Book String title
  • 在 SQL Management studio 中更改 CommandTimeout

    如何更改 SQL Management Studio 中的 CommandTimeout 如果您在使用表设计器时遇到超时 请更改工具 gt 选项 gt 设计器 gt 表和数据库设计器下的 事务超时时间 值 这将消除此消息 超时已到 操作完成
  • pandas 六个月的日期范围

    所以 这是我的数据框 PatientNumber QT Answer Answerdate DiagnosisDate 1 1 transferring No 2017 03 03 2018 05 03 2 1 preparing food
  • epoll_wait()接收socket关闭两次(read()/recv()返回0)

    我们有一个使用 epoll 来侦听和处理 http 连接的应用程序 有时 epoll wait 会连续两次收到 fd 上的 close 事件 含义 epoll wait 返回连接 fd 其中 read recv 返回 0 这是一个问题 因为
  • pg (node-postgres) 是否自动清理数据

    我在用node postgres对于生产应用程序 我想知道是否有什么我应该关心的 数据是否自动清理node postgres 我在 github 页面上找不到任何相关信息 https github com brianc node postg
  • BrokeredMessage Azure ServiceBus 的虚假传递和接收

    我创建了一个 BrokeredMessage 实例 并希望围绕它的传递计数与队列的最大传递计数来测试我的代码 我不想建立一个真正的队列来发送和接收消息 但在消息传递之前 deliverycount 属性不会初始化 我怎样才能伪造这个 我设法
  • Ninject:将某物与其自身绑定是什么意思?

    Ninject 具有以下功能self binding like Bind
  • Rollup 函数 - 替换 NULL

    我的 SQL 的最后部分似乎遇到了麻烦 当在我的 SQL 中使用汇总函数实现分组依据时 会出现 NULL 如何修改 NULL 以便在此聚合 SQL 中将其替换为 TOTAL Current table returned Name Activ
  • 在Python中将数据作为后台进程写入磁盘

    我有一个 Python 程序 基本上执行以下操作 for j in xrange 200 1 Compute a bunch of data 2 Write data to disk 1 大约需要2 5分钟2 大约需要 1分钟 请注意 内存
  • 如何在多线程模式下使用 Gunicorn 运行 Flask

    我有用 Flask 编写的网络应用程序 正如大家所建议的 我不能在生产中使用 Flask 所以我想到了枪与烧瓶 在 Flask 应用程序中 我正在加载一些机器学习模型 它们的总大小为 8GB 我的 Web 应用程序的并发性可以达到1000