测试工具:ab(apacheBench)
硬件环境:
Intel xeon cpu E5-2682 v4 2.50GHz 4 core
8GBytes 内存
软件环境:
ubuntu16
nginx
静态文件
3Kbytes
26000次响应/秒(平均值)
吞吐量:111Mbytes/秒(平均值)
并发数:300
每次请求响应时间:10.8[ms](平均值)
58Kbytes
20000次响应/秒(平均值)
吞吐量:1165Mbytes/秒(平均值)
并发数:300
每次请求响应时间:14.2[ms](平均值)
beego
动态文件
3Kbytes
16000次响应/秒(平均值)
吞吐量:52Mbytes/秒(平均值)
并发数:330
每次请求响应时间:20.2[ms](平均值)
性能测试结果分析:
从以上结果可以看出,nginx对静态文件的处理性能,不论是是吞吐量、并发量、单位请求处理时间上,都很强大。而且cpu占用只有50%。整个性能表现受到ab单进程的限制,并没有完全发挥。
而beego的动态文件处理,性能也很强大。同样的文件(3Kbytes),nginx作为静态文件处理时,性能是每秒2.6W次响应。到了beego作为动态文件处理,依然可以达到每秒1.6万次响应的性能,性能下降较小。相对于静态文件处理,动态文件处理server需要经过更多流程才能完成输出,所以都会出现性能下降。
beego在处理时,服务器 cpu使用率达到了95%,而之前在笔记本上测试时,i3 cpu使用率也达到了93%,说明beego拥有良好的伸缩性。可以随着硬件(CPU、内存)的加强,发挥出更强的性能。