- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:WEBシステムがダウンする前に前兆を感知する仕組み)
WEBシステムがダウン前の前兆感知方法と外部プログラム呼び出し制限について
このQ&Aのポイント
- Javaで作られたWEBシステムで外部プログラム呼び出しによる障害が発生しました。サーバの重さやログインできなくなる前にダウンの前兆を感知する方法を教えてください。
- 外部プログラム呼び出しからダウンする前のアプリの重さの前兆を感知する方法を教えてください。
- WEBシステムにおいて外部プログラム呼び出しによるダウンを防ぐためには、ダウンする前の前兆を感知する仕組みが必要です。具体的な実装方法やアイディアをご教授ください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#98192
回答No.1
本質的な解決はアプリサーバーと外部プロセス実行サーバーを切り離して負荷分散させるのが正しいでしょう。 とはいえ、そうもいかないケースもあるかもしれませんので、捻り出してみました。 Javaの監視で言えばJMXを利用するのはどうでしょう。 外部アプリがJavaであればそのプロセスを監視することも可能です。 これが「アプリの方でできること」でないとするならば、思い切ってRuntime.exec()を使ってOSをネイティブに監視してしまうというのはどうでしょうか。 (本来、サーバーOSの監視であればnagiosやhinemosなど監視アプリを利用するのが良いと思います) あるいは、Webアプリから外部アプリの実行をシリアルにキューイングさせる。 Webアプリとは非同期で、キューの結果待ち画面を作る、というのも手です。これはアプリ要件次第ですね。 アプリの要件や外部プロセスが何かが見えないので追記してもらえればもう少しいいアイディアも出せるかもしれません。
補足
shinishiwa様 せっかくご回答頂いたのに、確認するのが大分遅れてしまって申し訳ありませんでした。 自分の要件をちゃんと伝えられなかった気がしますが、自分が希望していたいろんな視点からの分析をしてくださってびっくりしました。 要件を追記すると アプリの実施中に起こりうるあらゆるシステムダウンによる危険(外部プロセスの呼び出し、内部プロセスの処理ともに、)に対して アプリ保守チームとしてなにか知恵があったら教えてねと ユーザさんに言われたことです。 できなければ、できないと答えていいものですが、専門家の意見に出会ったらと思い、質問しました。 パフォマンスをよくする方法、メモリ消耗を監視する方法、いろんな視点からのアプローチが知りたかったです。 (これでわかりますかね?不安・・・) 1.アプリサーバーと外部プロセス実行サーバーを切り離す: パフォマンスを向上させるいい方法ですね。 実現可能な提案になるか引き続き検討していきます。 Javaの監視で言えばJMX: これで要件は実現できそうな気がします。 (保守チームは3人構成なので工数的に引き続き検討して、お客さんにも判断してもらいたいと思います。) 思い切ってRuntime.exec()を使ってOSをネイティブに監視: 外部でしたほうがもっといいなら、アプリの内部ですることは要求されないと思います。 引き続き、素敵なアドバイスをいただけたら幸いです。 よろしくお願いします。