ioctl AF_INET操作のカーネル最適化

ioctl AF_INET操作のカーネル最適化

当社のサーバーソリューションは、以下を使用して多くのトンネル作業要求(追加/更新/削除)を処理します。I/W制御インターフェイスとAF_INETアドレスファミリソケット。について。数字は毎分100のジョブで、サーバーには合計8,000を超えるトンネルがあります。

トンネルの数が増えるにつれて、奇妙な動作を観察します。トンネルの数が増加するにつれて、ioctlがカーネルで費やす時間のランダム性が増加します。

はい:平均して約100トンネル。 ioctlの作業時間範囲は100〜150msですが、2000以上では100〜10000msです。このプロセスのランダム性は驚くべきことです。

ストレス処理時間の97%以上がioctlにかかることがわかり、内部タイマーがこれを確認します。

これを最適化する方法はありますか?カーネルパラメータを調整すればよいですか?ランダム性をどのように説明しますか?

私たちのオペレーティングシステムはUbuntu Server 12.04です。

ベストアンサー1

ここで、ioctlは有罪ではないことが判明しました。ストレスこれが実際に本当であることを示していますが、カーネルのより深い分析は(またはトレースコマンド) は次のように示しています。I/W制御プロセッサスケジューラは、コア/コンテキスト切り替え中にほとんどの速度低下を引き起こします。

おすすめ記事