在Apache中进行ab压力测试时提示“apr_pollset_poll: The timeout specified has expired”

在Apache中进行ab压力测试时提示“apr_pollset_poll: The timeout specified has expired”

贡献者:

KB小秘书

 · 

更新时间:2020-06-09 09:53:05

提示: 这是一篇由阿里云ACE开发者(Alibaba Cloud Engineer)贡献,针对特定用户问题发布的文章。文档的内容以原稿呈现,阿里云对于文档内容不做任何形式的承诺。阿里云有权在未经通知的情形下对文档内容做出任何形式的修改。

问题描述

Apache中进行ab压力测试时提示以下报错。

apr_pollset_poll: The timeout specified has expired

问题原因

由于压测的并发请求超出服务器的最大连接条目,在没有执行完就报错。

解决方法

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

请您参照以下步骤进行操作。

  1. 当您在进行ab压测时使用-k参数,并在Web服务器的/etc/sysctl.conf文件中添加以下内容。
    说明:-k指的是发送keep-alive指令到服务器端。
    net.ipv4.netfilter.ip_conntrack_max = 3276800
    net.ipv4.tcp_tw_recycle = 0
    net.ipv4.tcp_tw_reuse = 0
    net.ipv4.tcp_orphan_retries = 1
    net.ipv4.tcp_fin_timeout = 25
    net.ipv4.tcp_max_orphans = 8192
    net.ipv4.ip_local_port_range = 32768    61000
  2. 如果上述配置已经存在,请您加大net.ipv4.netfilter.ip_conntrack_max的值,然后执行以下命令使其生效
    sysctl -p /etc/sysctl.conf

适用于

  • 云服务器 ECS
  • 249

    发布KB

  • 656

    回答问题

  • 12

    粉丝数