Advertisement

解决webbench在运行时出现卡住的情况

阅读量:

问题描述:

当对连接设置引入超时机制后,在执行压力测试的过程中可能会导致长时间无响应现象显著出现。当在本地webserver上运行压力测试时,偶尔会出现响应缓慢的情况且无法获取结果。而在使用webbench进行的压力测试中,则通常能够在合理时间内完成预期操作。

如下图

在这里插入图片描述

必须要ctrl+c终止。

github上也有这样的问题

长连接问题 · Issue #31 · linyacool/WebServer

解决思路:

找到可能被卡住的地方

在测试阶段对代码进行了优化,并输出结果;同时观察在每次运行1000个子进程中被阻塞进程的数量。

1:代码健壮性增加:从while (s = Socket(host, port) == -1){}; 修改为

只要timerexpired不等于0且尝试建立socket返回-1,
为了避免无限重复尝试创建socket而导致持续失败,
并未注意到超时时钟触发后已将timerexpired设置为1。

**测试

全部评论 (0)

还没有任何评论哟~