IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> docker部署基于gunicorn的flask-resful服务,flask本身自带的服务部署占用服务器资源 -> 正文阅读

[Python知识库]docker部署基于gunicorn的flask-resful服务,flask本身自带的服务部署占用服务器资源

一、

程序已经跟docker容器绑定了,只要docker后台运行程序就能后台了,所以不必开守护进程
守护进程(daemon)是一类在后台运行的特殊进程,用于执行特定的系统任务。很多守护进程在系统引导的时候启动,并且一直运行直到系统关闭。另一些只在需要的时候才启动,完成任务后就自动结束。 [1]
个人理解守护进程和普通进程区别是指:将后台程序变成一种服务,比如说,用命令行输入启动程序,如果不是守护进程的话,一旦命令行窗口关闭,程序就终止了;而如果启动守护进程,则退出命令行窗口之后,服务一直处于运行状态。

二、

今天登陆服务器发现python占用了相当高比例的cpu,然后发现是本站点使用flask做的的一些web小工具带来的,因此总算明白了启动flask的时候为什么提示不要在生产环境直接部署。0-0。因此决定部署好flask的生产环境,由于大部分人都对gunicorn评价很好,容易配置,因此本文也使用gunicorn来部署flask的生产环境了。

可以通过cat指令查看linux文件的内容

CMD
类似于 RUN 指令,用于运行程序,但二者运行的时间点不同:

CMD 在docker run 时运行。
RUN 是在 docker build。
作用:为启动的容器指定默认要运行的程序,程序运行结束,容器也就结束。CMD 指令指定的程序可被 docker run 命令行参数中指定要运行的程序所覆盖。

注意:如果 Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效。
# -*- coding: utf-8 -*-
"""
"""
import multiprocessing


bind = '0.0.0.0:9537'  # 绑定监听ip和端口号
workers = multiprocessing.cpu_count() * 2  # 同时执行的进程数,推荐为当前CPU个数*2+1
worker_class = "gevent"  # sync, gevent,meinheld   #工作模式选择,默认为sync,这里设定为gevent异步
backlog = 2048  # 等待服务客户的数量,最大为2048,即最大挂起的连接数
max_requests = 1000  # 默认的最大客户端并发数量
timeout = 600  # 进程沉默超时多少秒,杀死进程
daemon = False            # 是否后台运行
reload = False          # 当代码有修改时,自动重启workers。适用于开发环境。
capture_output = True   # 将 stdout/stderr 重定向到错误日志中的指定文件。
loglevel = 'debug'     # debug, info, warning, error, critical.
pidfile = 'logs/gunicore.pid'  # 设置pid文件的文件名
accesslog = 'logs/gunicorn.log'  # 设置访问日志
errorlog = 'logs/gunicorn.err.log'  # 设置问题记录日志

FROM python:3.7.4

COPY . /deploy
WORKDIR /deploy

RUN pip config set global.index-url https://mirror.baidu.com/pypi/simple \
    && pip install --upgrade setuptools \
    && pip install --upgrade pip \
    && pip install -r requirements.txt \
    && python3 paddle_model.py

EXPOSE 9537
ENTRYPOINT ["gunicorn", "-c", "gunicorn_cfg.py", "main_api:app"]

注意执行指令里面的参数是双引号,不能是单引号

三 特别注意在程序里面不要配置argparse参数,否则会和gunicorn传参冲突并报错

在这里插入图片描述
在这里插入图片描述

四,内存报错,去掉多个进程,防止加载多套独立的程序导致内存溢出

在这里插入图片描述

1.查看CPU信息

cat /proc/cpuinfo       //这个命令可以查看很详细的CPU信息
2.查看CPU指令集

gcc -march=native -Q --help=target | grep march    //这个命令只查看CPU指令集
3.查看内存信息

cat /procmeminfo       //这个命令可以查看很详细的内存信息
# -*- coding: utf-8 -*-
"""
@Author  :Mart
@Time    :2021/10/26 16:19
@version :Python3.7.4
@Software:pycharm2020.3.2
"""
import multiprocessing


bind = "0.0.0.0:9537"  # 绑定监听ip和端口号
# workers = multiprocessing.cpu_count() * 2  # 同时执行的进程数,推荐为当前CPU个数*2+1
workers = 1
worker_class = "gevent"  # sync, gevent,meinheld   #工作模式选择,默认为sync,这里设定为gevent异步
backlog = 2048  # 等待服务客户的数量,最大为2048,即最大挂起的连接数
max_requests = 1000  # 默认的最大客户端并发数量
timeout = 600  # 进程沉默超时多少秒,杀死进程
daemon = False            # 是否后台运行
reload = False          # 当代码有修改时,自动重启workers。适用于开发环境。
capture_output = True   # 将 stdout/stderr 重定向到错误日志中的指定文件。
loglevel = "error"    # debug, info, warning, error, critical.
pidfile = "logs/gunicore.pid"  # 设置pid文件的文件名
accesslog = "logs/gunicorn.log"  # 设置访问日志
errorlog = "logs/gunicorn.err.log"  # 设置问题记录日志

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-27 12:47:35  更:2021-10-27 12:48:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:52:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码