python提供了_使用Python提供高性能计算服务

本文通过使用Python进行多线程性能测试,对比了单线程与多线程环境下服务的处理能力。实验结果显示,在多核环境下利用多线程能够显著提高服务的并发处理能力和整体性能。

]

logging.info('[handle_api_foo] val: %d'% (val))

#do calc

result = fooWrapper.foo(val)

logging.info('[handle_api_foo] result: %d'% (result))

result = json.dumps({'result':result})

returnresult

单查究事

起首测试python单查究事,同时也是单线程办事(因为python GIL的存在,python多线程对于计算密集型义务几乎起反感化)。启动办事#!/bin/sh

#python

export PYTHONIOENCODING=utf-8

#start server

cd `pwd`/..

echo "run single pocess server"

python server.py

cd -

echo "server is started."测试办事

别的打开一个终端,履行script目次下的bench.sh,即#!/bin/sh

ab -T 'application/json'-p post.data -n 100 -c 10 http://127.0.0.1:4096/api/foo测试结不雅

总结

CPU运转

e04ff282d2396ec79642f7b56c33aa8c.png

ab测试结不雅

137650aff43d0a57ae8f592477d9e897.png

可以看出CPU只用了1个核,负载是2.44 request/second。

多核启动办事

在script目次下履行run_parallel.sh,即#!/bin/sh

#python

export PYTHONIOENCODING=utf-8

#start server

cd `pwd`/..

echo "run parallel pocess server"

gunicorn -c gun.conf server:app

cd -

echo "server is started."

个中gun.conf是一个python脚本,设备了gunicorn的一些参数,如下:import multiprocessing

bind = '0.0.0.0:4096'

workers = max(multiprocessing.cpu_count()*2+1,1)

backlog = 2048

worker_class = "sync"

debug = False

proc_name = 'foo_server'测试办事

别的打开一个终端,履行script目次下的bench.sh,即#!/bin/sh

ab -T 'application/json'-p post.data -n 100 -c 10 http://127.0.0.1:4096/api/foo测试结不雅

d0c6ec67dd11cdac124cb083831a7c65.png

CPU运转

82c9042fa07c9e716ce9f47b14eea0a9.png

ab测试结不雅

可以看出CPU用满了4个核,负载是8.56 request/second。是单核的3.5倍阁下,可以义务根本杀青多核有效应用的的目标。

推荐阅读

电信行业肯定欲望在超高容量和低延迟的下一代收集的支撑下安排5G营业,然则在5G商用之前,该技巧须要做进一步>>>详细阅读

地址:http://www.17bianji.com/lsqh/35421.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值