1
RHEL 6とRHEL 5でCPU使用率が高くなる原因を特定する
現在、システムをRHEL 5からRHEL 6に移動することを検討していますが、RHEL 6マシンでのCPU使用率が予想外に高いという問題に遭遇しました。これは、少なくとも一部selectは、割り込み可能なスリープを行うためにを使用したことが原因である可能性があります。次に、動作を示す簡単な例を示します。 #include <sys/select.h> int main() { timeval ts; for (unsigned int ii=0; ii<10000; ++ii) { ts.tv_sec = 0; ts.tv_usec = 1000; select(0, 0, 0, 0, &ts); } return 0; } RHEL 5マシンでは、CPU使用率は0%のままですが、RHEL 6がインストールされている同じハードウェアでは、CPUの約0.5%を使用selectするため、30〜50のプログラムを実行してスリープを実行すると、大量のCPUが不必要に。 Bugzillaを開いてOProfileを実行してみましたが、カーネルを見ると、アプリケーションのmainが100%で、poll_idleが99%を超えているだけです(grubオプションにidle = pollが設定されているため、すべてをキャプチャできます)。 CPU使用率が高くなる原因を特定するために私ができることについて、他に何か考えはありますか? 更新:私はperfツールを見つけ、次の出力を得ました: # Events: 23K cycles # # Overhead Command Shared …