すべてのプロダクト
Search
ドキュメントセンター

:ApacheBenchを使用してLinuxインスタンスでストレステストを実行するときに、「apr_pollset_poll: 指定されたタイムアウトが期限切れ」というエラーメッセージが表示された場合はどうすればよいですか?

最終更新日:Nov 25, 2024

このトピックでは、ApacheBenchを使用してLinux Elastic Compute Service (ECS) インスタンスでストレステストを実行するときに、「apr_pollset_poll: 指定されたタイムアウトが期限切れ」というエラーメッセージが表示される原因と解決策について説明します。

問題の説明

ab -c 10 -n 5000 http:// 192.168.XXX.XXX/ などのApacheBenchコマンドを実行してLinux ECSインスタンスでストレステストを実行すると、次のエラーメッセージが表示されます。

apr_pollset_poll: The timeout specified has expired

原因

同時ストレステスト要求の数が、Linux ECSインスタンスで確立できる最大接続数を超えています。

解決策

上記の問題を解決するには、Linux ECSインスタンスにログインし、カーネルパラメーターファイル (/etc/sysctl.conf) を変更し、-kオプションApacheBench testコマンドに追加します。

  1. Linux ECSインスタンスに接続します。

    詳細については、接続方法の概要をご参照ください。

  2. カーネルパラメーターファイルを変更します。

    1. 次のコマンドを実行して、カーネルパラメーターファイル (/etc/sysctl.conf) を開きます。

      vim /etc/sysctl.conf
    2. カーネルパラメーターファイルに次の内容を追加します。

      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
    3. Escキーを押し、 :wqと入力し、enterキーを押します。

  3. 変更を有効にするには、次のコマンドを実行します。

    sysctl -p /etc/sysctl.conf
  4. ApacheBench testコマンドに -kオプションを追加し、コマンドを実行して問題が解決しないかどうかを確認します。

    次の例では、-kオプションがab -c 10 -n 5000 http:// 192.168.XXX.XXX/ コマンドに追加されます。

    ab -c 10 -n 5000 -k http://192.168.XXX.XXX/