我的主要工作就是api的编写,那么如何测试API响应时间,以及预计高并发服务器压力呢?
1 首先统计API每日访问总数,举例为a。
API一般有访问日志,统计访问日志。linux下 用到类似grep wc管道命令统计。
2 计算并发数。
这个怎么计算呢?预估一下。这里我们有这么一个原则:80%流量集中在20%时间。
m = a*0.8/(24*0.2*3600) 得到每秒的大概并发数m。
3 假设约定 API 响应所能忍受最长时间为b ms,测试出响应时间为b ms时的并发数
linux下用ab性能测试,如下(这个自己慢慢试出来)
ab -c 100 -n 10000 http://mixservice/shop/template?shop_id=15141
-c为并发数 ,-n尽量设置大一些。
得到响应时间为b ms时临界的 并发数c。
4 假设5倍压力下,应该要多少台服务器。
5m /c (假设c是由一台服务器所能处理的并发)