java.lang:type=OperatingSystem
キーと属性を使用して、JMX を使用してシステム負荷平均を取得できますSystemLoadAverage
。値は倍精度浮動小数点値 (別名「double」) になります。
負荷平均は、サンプル期間中の実行キューの平均の長さであることに注意してください (上記の数値は、瞬時または 1 分間の平均である可能性があります)。システムによっては、処理を待機しているリクエストの数に関係なく、JVM プロセスが「1」としてカウントされる場合があります。したがって、負荷平均が常に 1.0 である可能性があります (これは、CPU が完全に使用されていることを示しています) が、CPU は、検出できない多くの要求を実際にスラッシング アラウンドしています。
ほとんどのリクエストがすべて同じ「コスト」である場合、リクエストのスループットをシステムの「負荷」のより良い尺度と見なすことができます。JMX を介してそのようなメトリックを取得することもできますが、コネクタの名前を計算する必要があります (または、コネクタを使用して接続しjconsole
、見つかるまで参照するだけです)。
Tomcat のコネクタにはそれぞれ、キーを持つ JMX Bean がありますCatalina:type=GlobalRequestProcessor,name="[protocol]-[connectortype]-[localip-?]-[portnum]
。例はCatalina:type=GlobalRequestProcessor,name="http-nio-127.0.0.1-8217
です。役に立つ属性が 3 つあります。
maxTime
processingTime
requestCount
これらの値をサンプリングして独自の負荷を追跡するかresetCounters
、Bean の操作を使用してカウンターをリセットし、JMX Bean にすべてのメトリックを保持させることができます。