python 协程_golang协程和python协程对比
golang协程和python协程对比,主要是测试在生产中的并发、效率等。因为机器配置较弱(没钱开机器:smile:),均在 load15 负载约降为 0 的时候开启下次测试,避免机器负载影响。 同时程序无复杂逻辑处理,仅做返回。go协程和python协程测试环境压测环境AWS 1核1G CPU为 E5-2676 v3 @ 2.40GHz,压测工具:wrk目标环境AWS 1核1G CPU为 E5-
golang协程和python协程对比,主要是测试在生产中的并发、效率等。
因为机器配置较弱(没钱开机器:smile:),均在 load15 负载约降为 0 的时候开启下次测试,避免机器负载影响。 同时程序无复杂逻辑处理,仅做返回。
go协程和python协程测试环境
压测环境
AWS 1核1G CPU为 E5-2676 v3 @ 2.40GHz,压测工具:wrk
目标环境
AWS 1核1G CPU为 E5-2676 v3 @ 2.40GHz,机器无弹性扩容性能,固死频率
前段均用nginx做反向代理
- golang环境:nginx->docker->golang->gin
- python环境:nginx->docker->python3.7->flask+gevent单进程模式
go协程测试结果
root@aws1:~# wrk -t6 -c200 -d30s http://x.x.x.x/uaRunning 30s test @ http://x.x.x.x/ua 6 threads and 200 connections Thread Stats Avg Stdev Max +/- Stdev Latency 94.19ms 128.56ms 1.12s 96.09% Req/Sec 448.99 81.79 680.00 70.00% 80543 requests in 30.04s, 13.67MB readRequests/sec: 2681.19Transfer/sec: 465.95KBroot@aws1:~# wrk -t3 -c100 -d30s http://x.x.x.x/ua Running 30s test @ http://3.0.3.0/ua 3 threads and 100 connections Thread Stats Avg Stdev Max +/- Stdev Latency 34.64ms 5.17ms 65.64ms 94.30% Req/Sec 0.96k 69.42 1.05k 87.78% 85742 requests in 30.03s, 14.55MB readRequests/sec: 2854.81Transfer/sec: 496.12KB
golang在机器负载高的时候响应很慢,约为100ms左右,机器负载低的时候响应很快34ms。平均水平 QPS约为2800(1核1G内存,2.4GHZ处理器)
python协程测试结果
root@aws1:~# wrk -t6 -c200 -d30s http://x.x.x.x/cpplaRunning 30s test @ http://x.x.x.x/cppla 6 threads and 200 connections Thread Stats Avg Stdev Max +/- Stdev Latency 186.31ms 38.63ms 1.21s 98.70% Req/Sec 182.58 93.09 333.00 56.87% 32052 requests in 30.05s, 6.85MB readRequests/sec: 1066.56Transfer/sec: 233.28KBroot@aws1:~# wrk -t3 -c100 -d30s http://x.x.x.x/cppla Running 30s test @ http://x.x.x.x/cppla 3 threads and 100 connections Thread Stats Avg Stdev Max +/- Stdev Latency 94.45ms 7.26ms 127.97ms 92.59% Req/Sec 350.32 42.29 450.00 77.56% 31425 requests in 30.04s, 6.71MB readRequests/sec: 1046.22Transfer/sec: 228.81KBroot@aws1:~# wrk -t3 -c50 -d30s http://x.x.x.x/cppla Running 30s test @ http://x.x.x.x/cppla 3 threads and 50 connections Thread Stats Avg Stdev Max +/- Stdev Latency 45.89ms 4.44ms 78.93ms 95.25% Req/Sec 349.89 41.41 454.00 80.67% 31381 requests in 30.03s, 6.70MB readRequests/sec: 1044.85Transfer/sec: 228.51KB
可以看出python在并发和机器负载低情况下跟golang响应方面差别不大,平均水平 QPS约为1000(1核1G内存,2.4GHZ处理器)。 不过并发能力确实弱很多,而且随着负载增高,越来越慢(还是动态语言解释的原因),不过话说instagram都用来处理上亿的并发,这点量算什么:smile:,Refer: 《Flask gevent 多进程WSGI,每秒1w5 QPS》 。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)