- PR -

JavaでPCの実行状態を判断することができますか?

投稿者投稿内容
Mxfull
大ベテラン
会議室デビュー日: 2006/02/15
投稿数: 146
投稿日時: 2006-08-15 17:51
有難うございます。

実は、暇なPCを判断してあるPGの処理を委譲したいということを
したいのです。つまり、簡単なロードバランスしたいです。
こんなことをしたければ、PCの実行状況を確認できなければ
盲目的な委譲をするしかありません。
Javaで何かできるかなと思っています。
宜しくお願いします。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 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 ]
さくらば
大ベテラン
会議室デビュー日: 2002/11/12
投稿数: 145
投稿日時: 2006-08-16 08:37
こんにちは、さくらばです。

引用:

MMXさんの書き込み (2006-08-15 18:33) より:
正統な 感じでは 検索語は
JVMPI
かな、



JVMPI はすでに過去の遺物で、現在は JVMTI です。
また、実験的な機能ではなく、プロファイリングの標準インタフェースです。

ただ、JVMTI が取得できるのは、あくまでもその JVM が使用している CPU 時間だけで、
マシンの CPU 使用率を得ることはできません。JVM の CPU 時間の増加率が低ければ、
大した仕事はしていないと判定することはできるかもしれませんが、Java 以外の他の
プロセスによる負荷の状況が分からないので、総合的な判断は難しいと思います。

また、JVMTI はむちゃくちゃ重いので、今回のような用途でははっきりいって使えません。

JVMTI のエージェントは普通は C/C++ で作らなければならず、JVM で動作しているアプ
リケーションにアクセスすることも難しいです。

もし、JVM が使用している CPU 時間だけでよいというならば、MXBean の方が適してい
ます。JVMTI より格段に軽いですし、Java だけで記述することができます。
Mxfull
大ベテラン
会議室デビュー日: 2006/02/15
投稿数: 146
投稿日時: 2006-08-16 10:51
有難うございます。

とりあえずご教授いただいた方法で
一歩一歩に確認してみます。

宜しくお願いします。

スキルアップ/キャリアアップ(JOB@IT)