Week7-Homework

用户头像
关注
发布于: 2020 年 07 月 22 日

1.性能压测时,随着并发压力增加,系统响应时间和吞吐量如何变化,为什么?

(1)并发压力增大,系统响应时间会逐渐增加,吞吐量会逐渐上升到顶峰,然后开始下降。(这个下降很可能不是线性的,可能是系统突然崩溃,吞吐量降为0)。

(2)因为并发压力增加,系统各种资源逐渐消耗,主要是CPU、内存、硬盘、网卡。这集中资源逐渐被占满,然后因为压力继续上升。没有更多的系统资源处理请求,导致吞吐量归零。系统崩溃。

2.压测百度,10并发,100次请求。

这里觉得应该使用,CyclicBarrier、CountDownLatch。不过实际工作场景中,并没有用过这两个类。所以只是简单实现了一下压测功能。只测出平均响应时间为766ms。



public class PressureTest implements Runnable {
private static long time = 0L;
private static final String URL = "www.baidu.com";
//请求总次数
private static final int totalRequestCount = 100;
//并发数
private static final int concurrentCount = 10;
public static void main(String[] args) throws InterruptedException {
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
Thread thread = new Thread(new PressureTest());
thread.setName(i+"");
thread.start();
}
}
Thread.sleep(5000L);
System.out.println("平均响应时间:"+time/100);
}
@Override
public void run() {
long start = System.currentTimeMillis();
long end = 0L;
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url("https://www.baidu.com").build();
try (Response response = client.newCall(request).execute()){
System.out.println(response.body().string());
end = System.currentTimeMillis();
} catch (IOException e) {
e.printStackTrace();
}
time += end - start;
System.out.println("响应时间:" + (end - start));
}
}



用户头像

关注

还未添加个人签名 2018.05.02 加入

还未添加个人简介

评论

发布
暂无评论
Week7-Homework