用ngnix取代flask的send_from_directory提高图像下载性能及减少CPU消耗

历史版本的前端对dicom图像的加载是通过后端的flask的send_from_directory函数实现。

这里直接采用nginx方案,前端直接通过nginx下载dicom图像,减少了和flask的交互和多余的网络包结构。

 

测试环境A

环境为:1000M网络

图像:xx病人的图像(2107层,413M)

下载速度测试

方案前端6并发前端10并发
采用flask的send_from_directory14.111.6
直接采用nginx11.910.2

 

结论:

采用nginx方案直接下载,相比flask的send_from_directory方案,可以节省15%的时间。

前端采用10并发,相比6并发,可以节省15%的时间。

如果采用nginx+前端10并发,并比 flask.send_from_directory+前端6并发,可以节省28%的时间。

 

后台资源消耗

采用flask的send_from_directory 非常消耗CPU,flask能使用的cpu(通过docker限制cpu数量),平均消耗在50%左右

 

直接采用nginx的方案,flask的cpu使用率为0, nginx在2000并发的情况下,nginx的cpu使用率为单核的20%左右,CPU消耗很低。

 

并发能力

采用flask的send_from_directory 方案,采用ab进行并发测试下载dcm图片,并发能力约为500。

直接采用nginx的方案,采用ab进行并发测试下载dcm图片,稳定并发能力约为2000。

 

每个用户在阅片时,最大的并发不超过10,这里以10作为计算。则2000的并发能力等价于200个医生同时访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值