架构师 3 期 3 班 -week7- 作业
题目
完成情况
作业1
响应时间和吞吐量是2个维度
响应时间,如下图所示

在0-t1,响应时间很短,基本上此时系统资源充足,每个并发线程都可以很即时获取到系统资源,从而快速的响应和处理
在并发数超过t1后,由于线程数量多,cpu频繁切换线程的弊端更加明显,拖慢响应时间。系统资源的负载都相对较高
在并发数超过t2后,可能由于句柄数、内存等限制,越来越多的线程可能会出现等待的情况,严重影响响应时长,并且系统资源趋于满负载,系统稳定性得不到保证。
吞吐量,如下图所示

在0-t1,由于系统资源负载低,随着并发数量的提高,单位时间内系统可以同时处理多个请求,充分利用系统资源
在t1-t2阶段,系统负载达到一定程度,处理请求的平均响应时间会变长,所以吞吐量增长没有t1之前的时间段快,但系统仍能保证正常响应。
在t2-t3阶段,系统负载趋于饱和,可能有大量任务排队等待系统资源,吞吐能力反而下降,而且随着并发不断增加,系统有可能无法对外提供服务。
作业2

最近在学习go语言,所以用go做作业
router.go 是路由类
url
access test_handler.go 是controller处理类runner.go 压测调度类,负责并发生成及处理task
task.go 任务类,描述被压测的任务
项目地址:[week7 作业2](https://github.com/zbest0513/go_study/tree/master/week7)
请求地址
响应:
avg_time 是平均时间
target_time是95%时间
results是每个task的响应时间,升序排序
{
"avg_time": "1.44",
"results": "[0.38,0.38,0.45,0.46,0.47,0.49,0.70,0.72,0.73,0.77,0.78,0.87,0.88,0.88,0.89,0.89,0.93,0.99,1.02,1.04,1.08,1.08,1.14,1.16,1.16,1.17,1.17,1.17,1.19,1.20,1.23,1.27,1.27,1.28,1.32,1.33,1.33,1.34,1.34,1.38,1.40,1.40,1.40,1.42,1.43,1.43,1.43,1.44,1.44,1.44,1.45,1.46,1.46,1.46,1.48,1.48,1.51,1.51,1.52,1.56,1.57,1.57,1.57,1.64,1.66,1.66,1.68,1.68,1.68,1.73,1.73,1.75,1.77,1.78,1.78,1.78,1.79,1.79,1.82,1.82,1.86,1.87,1.87,1.88,1.88,1.89,1.92,1.92,1.92,1.94,1.98,1.98,1.98,2.09,2.12,2.19,2.36,2.36,2.39,2.44]",
"target_time": "2.12"
}