1

現在のサーバー負荷をどのように判断しますか?ここでCPU時間を取得するためにJMXを使用する必要がありますか、それともそれまたは類似のものを判別する別の方法がありますか?

基本的に、サーバーがアイドル状態のときにのみバックグラウンドジョブを実行したいと思います。Quartzを使用して30分ごとにジョブを起動し、サーバーの負荷を確認してから、負荷が低い場合は続行し、ビジーの場合は停止します。

負荷(CPU時間、メモリ使用量)の測定方法を決定できたら、さまざまなポイントでこれらを測定して、サーバーの構成方法を決定できます。

ウォルター

4

2 に答える 2

1

ポータブルな方法で行うのは難しいですが、プラットフォームに大きく依存する可能性があります。

別の方法は、Quartzジョブを優先度の低いスレッドで実行するように構成することです。Quartzを使用すると、スレッドファクトリを構成できます。サーバーがビジー状態の場合は、邪魔にならずに実行できるようになるまで、スレッドをパックの後ろにシャッフルする必要があります。

また、ジョブの途中で負荷が急上昇した場合、VMは、負荷が再び低下するまでバッチジョブを自動的に抑制します。これは自己調整型である必要があります。これは、現在の負荷を手動で内省することでは得られません。

于 2009-11-23T21:28:29.743 に答える
0

あなたはあなた自身の質問に答えたと思います。純粋なJavaソリューションが必要な場合、実行できる最善の方法は、ThreadMXBeanによって返される情報です。

スレッドの数、ホストマシンのプロセッサの数、各スレッドの使用時間などを確認し、そこからCPU負荷を計算できます。

于 2009-11-23T21:28:01.177 に答える