postman批量测试 + flask多进程与多线程的区别

postman批量测试

使用postman进行高压测试,查完官方文档后确定他是串行运行的,等待一个post有响应结果后在发送下一个post请求,但我觉得还可以了,主要是测试连续请求会不会顺序打乱,程序崩溃。

  1. 先新建一个集合,new->collection,给集合命名。
    在这里插入图片描述

  2. 点击 。。。然后add request,给请求命名。
    在这里插入图片描述

  3. 点击 。。。然后add request,给请求命名。

  4. 若要发送多次请求,可以点击ctrl + d进行复制
    在这里插入图片描述

  5. 点击运行
    在这里插入图片描述

  6. 更新你的参数

在这里插入图片描述

  1. 发送后查看结果
    在这里插入图片描述

flask多进程与多线程的区别

Flask 默认是单进程,单线程阻塞的任务模式,在项目上线的时候可以通过nginx+gunicorn 的方式部署flask任务。

但是在开发的过程中如果想通过延迟的方式测试高并发怎么实现呢,其实非常简单,

app.run()中可以接受两个参数,分别是threaded和processes,用于开启线程支持和进程支持。

1.threaded : 多线程支持,默认为False,即不开启多线程;

2.processes:进程数量,默认为1.

开启方式:

if __name__ == '__main__':
	app.run(threaded=True)
	# app.run(processes=True)

注意:多进程或多线程只能选择一个,不能同时开启。
processes=num 使用报错了,ValueError: cannot have a multithreaded and multi process server,将num改为True就可以使用flask框架的多进程了。

多进程

进程其实是资源的分配的单位,包括代码、内存、CPU等等,多进程类似程序的多开,比如qq的多开。

下图解释了多进程工作的原理,在主进程下,子进程1和子进程2分别复制了主进程的代码以及资源,而子进程1则只运行test1这个函数,子进程2则只运行test2这个函数,进程之间的全局变量互不影响,对资源的开销比较大。当主进程结束后,所有的子进程全部结束,而子进程之间互不影响

在这里插入图片描述

多线程

在一个进程中我们也可以使用多任务,这就是线程,线程其实是操作系统资源调度的单位。多线程可以共享全局变量。

多线程并不会复制主进程的代码和资源,而是共享全局变量,相比多进程来说,资源开销更加小。在同一时间,子线程1和子线程2同时运行,实现多任务,而他们会共享全局变量。

例如设置一个全局变量,子线程让他+1后打印,另一个子线程打印也是+1后的数值。

多线程和多进程的选择使用

如果你对自己的硬件资源很自信,那么就选择多进程。因为多进程占用资源比较多,因为其全局变量不共享,内存中存储多个相同变量。
但如果你的代码逻辑很复杂,一些变量产生了问题,那么就不要用多线程了,宁愿使用多一些资源也不要产生故障。

flask 后台运行

nohup python run.py >log.txt 2>&1 &

在这里插入图片描述
这样将.py文件更换成我们自己的就可以了。这里仅仅是后台运行,但是我们如果希望确保重启和服务器变动之后也保持运行,则需要添加到开机启动项中。
如果我们在服务器中运行某些脚本且设定需要一直运行状态,但是如果因为我们自己或者服务器不稳定导致重启,会导致工具无法运行。比如老蒋昨天在运行Python脚本的时候,用nohup虽然可以后台自动运行,但是如果服务器被重启又导致页面无法访问。

Linux查看并杀死被占用的端口

yum install -y lsof //安装lsof
sudo apt-get install lsof    //安装lsof
sudo lsof -i:端口号      //查找对应的进程号
sudo kill -9 进程号      //杀死对应的进程

flask好像在高并发上效果不太好,容易崩。建议使用gunicorn,并发大一点。

清华源 + pip下载速度加快

pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple

Linux查看占用GPU的进程

sudo fuser -v /dev/nvidia*
或者

pip install gpustat -i https://pypi.tuna.tsinghua.edu.cn/simple

然后输入gpustat
在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

滴滴滴'cv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值