操作系统 : CentOS7.3.1611_x64
Python 版本 : 3.6.8
tornado版本:6.0.2
snaic版本:19.9.0
CPU : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz 4核
之前一直使用tornado作为http相关python程序的框架,最近查资料发现新出的snaic性能很高,这里在同样硬件条件下使用ab进行简单的压测。
准备工作
安装apache ab工具:
yum -y install httpd-tools
压测命令:
ab -c -n http://127.0.0.1:9093/
参数说明:
-c :模拟并发数
-n : 总请求数
对比测试
使用tornado实现的简单http服务器代码: https://github.com/mike-zhang/pyExamples/blob/master/httpRelate/httpServer/tornadoTest1.py
使用snaic实现的简单http服务器代码:https://github.com/mike-zhang/pyExamples/blob/master/httpRelate/httpServer/snaicTest1.py
tornado测试结果:
Server Software: TornadoServer/ Server Hostname: 127.0.0.1 Server Port: Document Path: / Document Length: bytes Concurrency Level: Time taken for tests: 82.282 seconds Complete requests: Failed requests: Write errors: Total transferred: bytes HTML transferred: bytes Requests per second: 1215.33 [#/sec] (mean) Time per request: 24.685 [ms] (mean) Time per request: 0.823 [ms] (mean, across all concurrent requests) Transfer rate: 245.68 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: Processing: Waiting: Total: Percentage of the requests served within a certain time (ms) % % % % % % % % % (longest request)
snaic测试结果:
Server Software: Server Hostname: 127.0.0.1 Server Port: Document Path: / Document Length: bytes Concurrency Level: Time taken for tests: 20.164 seconds Complete requests: Failed requests: Write errors: Total transferred: bytes HTML transferred: bytes Requests per second: 4959.29 [#/sec] (mean) Time per request: 6.049 [ms] (mean) Time per request: 0.202 [ms] (mean, across all concurrent requests) Transfer rate: 537.58 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: Processing: Waiting: Total: Percentage of the requests served within a certain time (ms) % % % % % % % % % (longest request)
从测试结果可以看到,开启两个进程情况下:
tornado的cps是 1215.33 ,平均响应时间是 24.685 ms
snaic的cps是 4959.29 ,平均响应时间是 6.049 ms
修改并发数后的测试数据如下:
测试结果对比如下:
从测试数据来看,snaic的cps比tornado高,平均响应时间方面,snaic也比tornado短。
本文github地址:
https://github.com/mike-zhang/mikeBlogEssays/blob/master/2019/20191102_snaic和tornado的简单性能测试.rst
欢迎补充