[转帖]Linux学习14-ab报错apr_pollset_poll: The timeout specified has expired (70007)

linux,学习,ab,报错,apr,pollset,poll,the,timeout,specified,has,expired · 浏览次数 : 0

小编点评

**问题:** ab压力测试时出现报错 `apr_pollset_poll: The timeout specified has expired (70007)`。 **原因:** timeout连接超时了,主要是由于网络连接中断或服务器发送数据 late。 **解决方案:** 1. **设置参数 -k:** - `-k`参数可以设置 HTTP Keep-Alive,保持连接 alive。 2. **设置参数 -r:** - `-r`参数可以递归地发送请求,即使遇到错误也不停止测试。 3. **设置参数 -s:** - `-s`参数可以设置最大等待时间,超过该时间,测试将终止。 4. **设置参数 -r -s:** - `-r`和 `-s`参数一起使用可以同时设置连接保持和最大等待时间。 5. **使用 HTTP Keep-Alive:** - 设置 `Keep-Alive`属性在 HTTP 头中,例如 `Keep-Alive: 300`。 **示例:** ``` ab -c 10 -n 5000 -k -s 30 -r -r -s  http://47.104.x.x:8082/ ``` **注意:** - `-k`参数只适用于 `apr_pollset_poll` 错误。 - `-r`参数只适用于 `apr_socket_recv` 错误。 - `-s`参数适用于所有 `apr_*` 错误。

正文

https://www.cnblogs.com/yoyoketang/p/10255100.html

 

前言

使用ab压力测试时候出现报错apr_pollset_poll: The timeout specified has expired (70007),本篇总结了几个ab常见的报错和对应解决办法
当并发数过大的时候,也会出现apr_socket_recv: Connection reset by peer (104)

apr_pollset_poll

如果出现apr_pollset_poll: The timeout specified has expired (70007),主要是timeout连接超时了,可以加个-k参数,让连接KeepAlive

ab -c 10 -n 5000 http://47.104.x.x:8082/

[root@yoyo sbin]# ab -c 10 -n 5000 http://47.104.x.x:8082/
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 47.104.190.48 (be patient)
Completed 500 requests
Completed 1000 requests
Completed 1500 requests
Completed 2000 requests
Completed 2500 requests
Completed 3000 requests
Completed 3500 requests
Completed 4000 requests
Completed 4500 requests
apr_pollset_poll: The timeout specified has expired (70007)

出现原因主要是timeout连接超时了,可以加个-k参数,让连接keep-alive,另外还有-r 和-s参数也可以加上

-r              Don't exit on socket receive errors.                 # 在遇到socket接收错误后,不退出测试
-s timeout      Seconds to max. wait for each response    # 最大超时时间,默认30s
                    Default is 30 seconds
-k              Use HTTP KeepAlive feature                          # keep-alive保持连接

加上-k参数重新运行就不会有问题了

ab -c 10 -n 5000 -k http://47.104.x.x:81/

其它异常

当并发数设置为1000时,直接报错:apr_socket_recv: Connection reset by peer (104)

[root@yoyo sbin]# ab -c 1000 -n 10000 http://47.104.x.x:81/
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 47.104.190.48 (be patient)
apr_socket_recv: Connection reset by peer (104)
Total of 1 requests completed

当ab遇到严重的网络错误后,就会退出测试,因为这种错误说明网络存在其他问题,但是只要服务器返回数据,哪怕是数据不对,ab也会继续下去,但是会记录数据长度不对。
但事实上是:在高压力下,偶尔的一两个请求被阻止,这是一个正常的情况,特别是有防火墙或入侵检测系统的情况下,这种事情会经常发生。
那么ab有没有参数来跳过这种错误,使测试继续下去呢?

-r参数可以实现忽略这种错误,在遇到socket接收错误后,不退出测试

ab -c 10 -n 5000 -r http://47.104.x.x:81/

加上-r参数就不会遇到这种异常,中途退出了

交流QQ群:779429633

与[转帖]Linux学习14-ab报错apr_pollset_poll: The timeout specified has expired (70007)相似的内容:

[转帖]Linux学习14-ab报错apr_pollset_poll: The timeout specified has expired (70007)

https://www.cnblogs.com/yoyoketang/p/10255100.html 前言 使用ab压力测试时候出现报错apr_pollset_poll: The timeout specified has expired (70007),本篇总结了几个ab常见的报错和对应解决办法当

[转帖]Linux 学习记录四(Bash 和 Shell scirpt).

https://www.cnblogs.com/jmcui/p/7194627.html 阅读目录 一、什么是 Shell? 二、Bash Shell 的基本操作技巧 三、Shell Script 回到顶部 一、什么是 Shell? 狭义的shell指的是指令列方面的软件,包括基本的Linux操作窗

[转帖]【Linux学习】awk内置函数详细介绍(实例)

https://www.cnblogs.com/gtea/p/12668736.html 这节详细介绍awk内置函数,主要分以下3种类似:算数函数、字符串函数、其它一般函数、时间函数 一、算术函数: 以下算术函数执行与 C 语言中名称相同的子例程相同的操作: 函数名 说明 atan2( y, x )

[转帖]linux学习:sed与awk与tr用法整理

https://www.cnblogs.com/LO-gin/p/6882490.html 流编辑器:sed 语法:sed [-hnV][-e

[转帖]Linux 学习笔记: shell中${} 的用法,删除&替换

Linux 学习笔记: shell中${} 的用法,删除&替换 字符串的删除 echo${i##*/} 删除 / 前的所有内容 ## 删除 tt=$i echo{tt:22} #取的22位以后的所有字符 file=/dir1/dir2/dir3/my.file.txt ${file#/}:删掉第一个

[转帖]Linux命令学习手册-readelf

https://www.jianshu.com/p/405844abefae 功能 用于显示 elf 格式文件的信息。 描述 readelf 用来显示一个或者多个 elf 格式的目标文件的信息,可以通过它的选项来控制显示哪些信息。这里的 elf-file(s) 就表示那些被检查的文件。可以支持32位

[转帖]【Linux Kernel】学习预热

https://blog.yelvlab.cn/archives/614/ Linux Kernel基础知识 Kernel组成: Linux内核主要由 进程管理、内存管理、设备驱动、文件系统、网络协议栈 外加一个 系统调用。 Kernel源码组织结构 Kernel知识体系 最后修改:2021 年 0

[转帖]Linux命令学习手册-readelf

https://www.jianshu.com/p/405844abefae readelf elf-file(s) 功能 用于显示 elf 格式文件的信息。 描述 readelf 用来显示一个或者多个 elf 格式的目标文件的信息,可以通过它的选项来控制显示哪些信息。这里的 elf-file(s)

[转帖]学习linux必须知道的命令

https://www.cnblogs.com/aibeier/p/15315487.html 基础不牢,地动山摇。在linux命令行下查看命令帮助man用于查看命令的帮助信息 man cp--help cd --helpinfo查看程序对应文档信息的命令,可以作为man和help命令的帮助补充in

[转帖]perf学习-linux自带性能分析工具

存储技术为满足层出不穷应用的海量数据存储需求,从物理介质到技术架构也同样发生了天翻地覆的变革。无论技术如何更新换代,其目的都是为了更好的提供高性能,高容量,高可用的数据服务。本系列文章会对存储系统的测试和调试工具做一个介绍。 dd - Linux世界中的搬运工 FIO – IO压力测试工具 vdbe