- - PR -
JavaでPCの実行状態を判断することができますか?
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-08-15 17:51
有難うございます。
実は、暇なPCを判断してあるPGの処理を委譲したいということを したいのです。つまり、簡単なロードバランスしたいです。 こんなことをしたければ、PCの実行状況を確認できなければ 盲目的な委譲をするしかありません。 Javaで何かできるかなと思っています。 宜しくお願いします。 | ||||
|
投稿日時: 2006-08-15 18:33
正統な 感じでは 検索語は
JVMPI かな、 JVMPI に基づいたプロファイリング ツールを使用すると、多量のメモリが割り当てられている場所、CPU 使用率のホットスポット、不要なオブジェクトの保持、モニタの競合など、パフォーマンスの包括的な分析に役立つさまざまな情報を取得できます。 注意 : JVMPI は 1 つの VM につき 1 つのエージェントだけをサポートします。 警告 : このインタフェースは Java 2 SDK の実験的な機能であり?、まだ標準のプロファイリング インタフェースではありません。 JOBが 独裁者からしか 渡されないのなら、こんな精密な方法は不要です。 -------------------------- サーバー プッシュでなく、クライアント プルでも 負荷分散はできるでしょう みずから、失業者が求職活動するように。 サーバーが クライアントの 細かなシステム情報を知らなくても有効な負荷分散は可能です。 サーバー プッシュしたJOB自身が、起動初期に時間を計測して、時間が長ければ サーバーに実行失敗を通知して自殺(アポトーシス)するのもできます。 ------------------------- jobを受けたほうが、自分の負荷状況を判断して、拒否するのも、ありえます。 SOAのイメージなら JOBを受けるほうが サーバー。 ================ ドン Gosling 氏が、クラスタリングとスレッドを同時に使う難しさを blog で語っています。 http://uegaharatarou.cocolog-nifty.com/blog/2006/06/crazy_multicore.html ================== JavaからCPU時間やネットワークリソースを管理 - JSR 284、EDRフェーズへ http://journal.mycom.co.jp/news/2006/08/28/344.html javaで早いといっても 30ms http://journal.mycom.co.jp/news/2006/08/29/101.html [ メッセージ編集済み 編集者: MMX 編集日時 2006-08-29 14:54 ] | ||||
|
投稿日時: 2006-08-16 08:37
こんにちは、さくらばです。
JVMPI はすでに過去の遺物で、現在は JVMTI です。 また、実験的な機能ではなく、プロファイリングの標準インタフェースです。 ただ、JVMTI が取得できるのは、あくまでもその JVM が使用している CPU 時間だけで、 マシンの CPU 使用率を得ることはできません。JVM の CPU 時間の増加率が低ければ、 大した仕事はしていないと判定することはできるかもしれませんが、Java 以外の他の プロセスによる負荷の状況が分からないので、総合的な判断は難しいと思います。 また、JVMTI はむちゃくちゃ重いので、今回のような用途でははっきりいって使えません。 JVMTI のエージェントは普通は C/C++ で作らなければならず、JVM で動作しているアプ リケーションにアクセスすることも難しいです。 もし、JVM が使用している CPU 時間だけでよいというならば、MXBean の方が適してい ます。JVMTI より格段に軽いですし、Java だけで記述することができます。 | ||||
|
投稿日時: 2006-08-16 10:51
有難うございます。
とりあえずご教授いただいた方法で 一歩一歩に確認してみます。 宜しくお願いします。 |