2.5. CPU 上で SoftIRQ を実行できる時間の増加


SoftIRQ の実行時間が十分でない場合、受信データの速度が、バッファーを十分な速さでドレインするカーネルの能力を超える可能性があります。その結果、ネットワークインターフェイスコントローラー (NIC) のバッファーがオーバーフローし、パケットが失われます。

softirqd プロセスが 1 回の NAPI ポーリングサイクルでインターフェイスからすべてのパケットを取得できなかった場合、それは SoftIRQ に十分な CPU 時間がないことを示しています。これは、10 Gbps 以上の高速 NIC を備えたホストに当てはまる可能性があります。net.core.netdev_budget および net.core.netdev_budget_usecs カーネルパラメーターの値を増やすと、softirqd がポーリングサイクルで処理できる時間とパケット数を制御できます。

手順

  1. net.core.netdev_budget パラメーターのチューニングが必要かどうかを判断するには、/proc/net/softnet_stat ファイル内のカウンターを表示します。

    # awk '{for (i=1; i<=NF; i++) printf strtonum("0x" $i) (i==NF?"\n":" ")}' /proc/net/softnet_stat | column -t
    221951548  0  0      0  0  0  0  0  0  0  0  0  0
    192058677  0  20380  0  0  0  0  0  0  0  0  0  1
    455324886  0  0      0  0  0  0  0  0  0  0  0  2
    ...

    この awk コマンドは、/proc/net/softnet_stat の値を 16 進形式から 10 進形式に変換し、表形式で表示します。各行は、コア 0 から始まる CPU コアを表します。

    関連する列は次のとおりです。

    • 最初の列: 受信フレームの総数。
    • 3 番目の列: 1 回の NAPI ポーリングサイクルでインターフェイスからすべてのパケットを取得できなかった softirqd プロセスの回数。
    • 最後の列: CPU コア番号。
  2. /proc/net/softnet_stat ファイルの 3 番目の列のカウンターが、時間の経過とともに増加する場合は、システムをチューニングします。

    1. net.core.netdev_budget_usecs および net.core.netdev_budget パラメーターの現在の値を表示します。

      # sysctl net.core.netdev_budget_usecs net.core.netdev_budget
      net.core.netdev_budget_usecs = 2000
      net.core.netdev_budget = 300

      これらの設定を使用すると、softirqd プロセスは、1 回のポーリングサイクルで、NIC から最大 300 個のメッセージを処理するのに最大 2000 マイクロ秒あります。ポーリングは、どの条件が最初に満たされたかに基づいて終了します。

    2. 次の内容を含む /etc/sysctl.d/10-netdev_budget.conf ファイルを作成します。

      net.core.netdev_budget = 600
      net.core.netdev_budget_usecs = 4000

      パラメーターを現在の値の 2 倍に設定します。

    3. /etc/sysctl.d/10-netdev_budget.conf ファイルから設定をロードします。

      # sysctl -p /etc/sysctl.d/10-netdev_budget.conf

検証

  • /proc/net/softnet_stat ファイルの 3 番目の列を監視します。

    # awk '{for (i=1; i<=NF; i++) printf strtonum("0x" $i) (i==NF?"\n":" ")}' /proc/net/softnet_stat | column -t

    それでも値が増加する場合は、net.core.netdev_budget_usecsnet.core.netdev_budget をより高い値に設定します。カウンターが増加しなくなるまで、このプロセスを繰り返します。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る