私はgentooを使用していますが、稼働時間を行うと、「負荷平均」が全体的に7.0のままになります。 top、htop、またはdstatを使用する場合、CPU使用率は常にアイドル状態です。コンピューターは、多くのNIOおよびJava.util.concurrentパッケージを使用するJavaプログラムを実行するために使用されます(多くのスピンロックが存在する可能性があります)。これにより、誤った負荷平均数が発生する可能性があります。実際、これをデバッグするにはどうすればよいですか?パフォーマンスは非常に正常であるため、コンピューターに負荷がかかっていないように見えます。何か提案はありますか?
uptime: " 10:56:50 up 327 days, 21:01, 4 users, load average: 7.00, 7.03, 7.00"
uname -a: "Linux Host 2.6.30-gentoo-r6 #1 SMP Tue Oct 6 12:08:22 EDT 2009 i686 Intel(R) Xeon(R) CPU X5550 @ 2.67GHz GenuineIntel GNU/Linux"
あなたの番号は有効であり、過剰に使用されていないようです。 8つのコア(またはCPU)を備えた完全に利用されたシステムの負荷平均は8.0です。現在、負荷平均は約88%です。これが、システムにパフォーマンスの問題が発生しない理由です。
参照:
http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages
http://www.linuxjournal.com/article/9001?page=0,1
から ウィキペディア
アイドル状態のコンピューターのロード番号は0です。CPU(レディキューまたは実行キュー)を使用または待機している各プロセスは、ロード数を1ずつ増やします。ほとんどのUNIXシステムは、実行中(CPU上)または実行可能(待機中)のプロセスのみをカウントします。 CPU)の状態。ただし、Linuxには、中断できないスリープ状態(通常はディスクアクティビティを待機している)のプロセスも含まれているため、I/Oシステムがビジーまたはストールしているために多くのプロセスがI/Oでブロックされたままの場合、結果が著しく異なる可能性があります[1]。これには、たとえば、NFSサーバーの障害またはメディア(USB 1.xストレージデバイスなど)の速度低下によるプロセスのブロックが含まれます。このような状況では、負荷平均が高くなる可能性があります。これは、CPU使用率の実際の増加を反映していません(ただし、ユーザーが待機する必要がある時間についてはわかります)。
これは、util.concurrent
のほとんどのものがOSによってIOブロッキングと見なされるため、Javaスレッドが負荷の原因となることを意味します。ツールを使用して、これらのプロセスの調査を開始できます。この質問への回答が記載されています: how-to-find-out-which-process-is-sumption-wait-cpu?