Javaで実環境でのプロファイリング

このQ&Aのポイント
  • JavaでCPU負荷の問題が発生した際に、実環境でスレッドダンプやスタックトレースを取得する方法について教えてください。
  • Javaのプロファイラは実環境での使用には向いておらず、CPU負荷が高い時のみ働くように設定する方法はありますか?
  • Javaで開発しているサーバアプリケーションのCPU負荷が特定の条件下で100%になる問題について、実環境でのプロファイリング方法を教えてください。
回答を見る
  • ベストアンサー

Javaで実環境でのプロファイリング

Javaでかなり多機能なサーバアプリケーションを作っているのですが、 普段はCPU負荷1%程度なのに特定の条件下で一時的に負荷が100%になってしまいます。 その原因を探るのに開発環境であれこれやってみても再現せず、 実環境(ユーザーに使ってもらっているサーバー)でその問題が発生した時にスレッドダンプや全スレッドのスタックトレースを取りたいと思ったのですが、 私の認識では、スレッドダンプを取るとプロセスが死んでしまい、Javaでは他スレッドのスタックトレースが取れず、プロファイラは実環境で使えるほど高性能ではないと思っています。 プロファイラもCPU負荷が高くなったときだけ働くようにするなどピンポイントに動作させれたらいいのですがそういうものは見つかりませんでした。 なにか良い方法は無いでしょうか?

  • Java
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

スレッドダンプを取ってもプロセスは死にません。 たぶんGCのせいではないでしょうか

関連するQ&A

  • Javaでエラーが!!!困ってます。

    私の設定が悪いのかどうなのかわかりませんが、最近JAVAがエラーで使えません・・・。大変困っています。誰か、教えてください。エラーの内容は以下のとおりです。 Java Plug-in 1.5.0_01 使用中の JRE のバージョン 1.5.0_01 Java HotSpot(TM) Client VM ユーザのホームディレクトリ = C:\Documents and Settings\ ---------------------------------------------------- c: コンソールウィンドウをクリア f: ファイナライズキューのオブジェクトをファイナライズ g: ガベージコレクト h: このヘルプメッセージを表示 l: クラスローダリストをダンプ m: メモリ使用率を表示 o: トリガログ p: プロキシ設定を再ロード q: コンソールを非表示 r: ポリシー設定を再ロード s: システムプロパティと配備プロパティをダンプ t: スレッドリストをダンプ v: スレッドスタックをダンプ x: クラスローダキャッシュをクリア 0-5: トレースレベルを <n> に設定 ----------------------------------------------------

  • JAVAのサーバープログラムの開発環境につい

    JAVAを学習しているのですが、JAVAのサーバープログラム・Webアプリケーションの開発に 当たって、どのような環境を構築すれば良いでしょうか? Tomcatだけで良いのか、とかがわかりません。。。 (eclipseがなくても開発環境を設定できるのかも聞きたいです。) あと、基礎知識はひと通り押さえたつもりなのですが、 JAVAでこれは身につけておくべき、という物があればお聞きしたいです。 返信が遅くなるかもしれませんが、宜しくお願い致します。

    • ベストアンサー
    • Java
  • Javaの開発環境

    Javaの開発に携わっている方にお尋ねします。 今回の開発環境指定は (1)Java:現在の最新バージョン (2)OS:Windows98以降 (3)DB:MySQL/Oracle/Microsoft SQL Server ※FreeはMy-SQL。その他はトライアルを入手してください。 (1)と(2)は解決済ですが、(3)のDB開発環境のインストールが分かりません。 どなたかDBの環境設定のインストールについて教えて下さい。 また、DBの環境設定について詳しく載ってるHPがあればそれも教えて頂けると助かります。 よろしくお願いします。

  • Javaでこれ1本で全てOKな王道を行く開発環境?

    Javaがなかなか習得できずに悩んでおります。 私は、C言語やPerlなど少しかじっているので、作りたいプログラムはできるのですが、Javaに限って一歩も進めずにいます。 原因は、恐らくJavaの流行った初期段階から乗り遅れて現在の開発手法についていけない、敷居が高くて助走がつけられない状態かなと感じております。 現に、開発環境すら作れない状況で情け無いです。 将来的にJavaを使いこなす、(WebサーバーでJava言語で作成したページ JSP?で動的にホームページ データベースも絡めたプロが作るようなもの)ができるように成りたいのですが、開発環境の決定、簡単なプログラムの作成から始めていきたいです。 Javaの開発環境を整えたいのですが、これ1本で 初級から上級者まで使えるものがしりたいです。 作成したい例として、Javaで商品コードを入れるとMySQLデータベースから商品画像を取得して画面上に表示させ、画像をクリックすると、アクセス回数がデータベースに記録され 別方向の画像が表示されるような、Javaとデータベースを絡めた動的なサイトを作る事を目指しております。 サーバーもApacheを使い、Perlは、ActivePerlを使っていて、開発環境がこれ1つなので選択の余地も無くCGIの王道ですが、 Javaの開発環境は、どれを選んで良いかの判断すらできません。有償・無償にかかわらず、これ1本で全てOK のような王道を行く開発環境がしりたいです。 もちろん、Javaなのでプラットフォームを選ばない Linux, Windowsでも同一ソースで動作する、iアプリも できるもので、ランタイム?バージョンアップも素早く対応している開発環境を望んでいます。

    • ベストアンサー
    • Java
  • SQLserver2000の集計処理が遅くなり、困っています!

    SQLserver2000の販売管理システム上で、ほぼ毎日在庫集計処理を行っています。以前に比べて集計処理が遅くなったので、プロファイラでトレースして、ボトルネックとなるSELECT文を突き止めたところまでは良かったのですが、そのDBのフルバックアップを取り、同じ環境を構築したサーバーにDBを移し、処理を実行したところ、ボトルネックとなる事象が再現されませんでした。2台のサーバーの差異を比較して、色々試みたのですが、現行システムの集計処理が改善できません。何か方法があればぜひ教えて下さい。 【現行システムで試した事】ログファイルの切捨て、DBの圧縮、インデックスの最適化、HDDのデフラグ 【プロファイラの値】CPU:現-148250、新-11484 Reads:現-62578066、新-46549 Writes:現-14、新-0 Duration:現-1492046、新-13280

  • Javaに対応しないレンタルサーバが多い理由

    JavaのJSPやJavaサーブレットは多くのレンタルサーバでは対応していません。それはどうしてでしょうか。サーバ業者がJavaに対する管理が面倒だとか顧客がJavaをサーバサイドを動かす需要がないからでしょうか。 Javaをサーバサイドに動かすことは、個人にとっては非現実的なやり方でしょうか。仮にJavaでリアルタイムなデータのやり取りするとしても、"必然的"にサーバ負荷が大きく、サーバ管理者から間違いなく「お断り」の連絡が来るではないでしょうか。 やはり、PHPとJavaScriptまたはActionScriptを組み合わせて、Webアプリケーションを作成した方が個人的に開発されても需要はあると思いますし、サーバ管理者にとっても管理しやすい言語であり、サーバ負荷も小さいのではないでしょうか。その方が個人にとっては現実的なやり方だと思いますが、どうでしょうか。

    • ベストアンサー
    • Java
  • Javaについてですが・・・

    Javaについて質問です。 JDKがバージョンアップした場合、古いバージョンと新しいバージョンを組み合わせることは可能ですか?(開発環境によって変わる?) また、JDKのバージョンアップに伴いWebサーバなどに影響はでませんか?

    • ベストアンサー
    • Java
  • JAVAのアプレットって?

    JAVAのアプレットとスクリプトの違いを教えてください。 JAVAのアプレットはスクリプトをコンパイルしてバイナリ-に変えたものと理解していいんでしょうか。何が違うのでしょうか。 またサバープレットでしたっけ(サーバーなんとか)、あれはどう違うのでしょうか。 それから、JAVAプログラムをWEBに組むための開発環境を整えるにはどのようなものが必要なのでしょうか、それはフリーなんですか? よく理解していないので変な質問ですみません。 こちら、UNIX、C,PERL、FORTRAN等はかなり詳しいと思っているけどWEB開発には縁のない人間です。

  • Centos(もしくはRedHat)でのjava環境構築

    最近、CentOSをインストールしました。 それをWEBサーバとして、JAVAで開発をしたいと思って いるのですが、そのための環境構築(javaでの実行環境)がわかりませんでした。 いろいろサイトを見たのですが、うまく見つからず・・・ そこで、javaでの実行環境をわかりやすく書いてある サイト、もしくは本などありましたら教えてください。

  • ローカル環境での開発

    こんにちは。 JAVAを勉強しようと思っているのですが、ローカル環境(サーバを借りずに自分のPC上で開発を行う)を整えるソフトなどはありますか? PHPのXAMPPのようなソフトがあれば教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java