タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

Javaとoperationとjavaに関するHayatoのブックマーク (4)

  • OutOfMemoryErrorが発生したときにきちんとJavaプロセスを殺す - nekop's blog

    OutOfMemoryErrorが発生してもスレッドを異空間に葬るだけでJava VMはそのまま動き続ける場合があるけど、当然ながら状態に一貫性のない状態で動いている可能性があるわけで基的にはとっとと死んで欲しいわけである。一般的に言うところの「不定」状態。OOMEはErrorであってふつうの例外ではなく、致命的なJava VMエラーを示すものである。OOME発生後にプロセス再起動しないでそのままどうこうしようというのは絶対に避けた方が良い。 例えばJDBCのコネクションオープンしてDBからデータを読み込んでるときにOOMEが起きた場合、JDBCコネクションは大抵オープンしっぱなしで回収はされなかったりする。OOMEではfinallyブロックが呼ばれる保証はない。JDBCコネクションリークくらいならまだ良い方だが、これは全てに当てはまる。A-B-Cといったセットになっている処理は例外など

    OutOfMemoryErrorが発生したときにきちんとJavaプロセスを殺す - nekop's blog
  • 肥え続けるTomcatと胃を痛めるトラブルハッカー

    PrintClassHistogramオプションで、迷宮入りを防げ!! 残された道はただ1つ。いまもメモリリークが発生している番環境で、何としても発生状況の情報を取得することだ。プロファイラを用いることが確実だが、性能劣化が確実に予想されるため、番環境に導入することは考えられない。 どうすれば、と考えあぐねていたところ、一緒に解析に当たっていた同僚より「PrintClassHistogramオプションが使えるのではないか」との情報を得た。試験環境でサービスへの影響がないことを確認した後、プロジェクトメンバが見守る中、最後の望みを賭けてPrintClassHistogramを番環境へ適用した。 ■PrintClassHistogramオプションとは? このオプションを知らない方のために、PrintClassHistogramオプションについて説明しよう。PrintClassHistog

    肥え続けるTomcatと胃を痛めるトラブルハッカー
    Hayato
    Hayato 2007/12/02
    java -verbose:gc -XX:+PrintClassHistogram TestMain
  • 【真夏の夜のミステリー】Tomcatを殺したのは誰だ? (1/3) - @IT

    【真夏の夜のミステリー】Tomcatを殺したのは誰だ?:現場から学ぶWebアプリ開発のトラブルハック(6)(1/3 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) 【第1章】Tomcatが無応答!? トラフィックの多い大規模サイトでは、その負荷のためにさまざまな問題が発生する。それらの問題を回避するには、性能を考慮して作られたアプリケーションや、ノウハウに基づいたミドルウェアのチューニングが必要となる。 TomcatはServletコンテナとしての長い歴史を持ち、多くの採用実績を持つオープンソースのアプリケーションサーバ(以下、APサーバ)だ。大規模なサイトで採用される事例も出てきており、To

    【真夏の夜のミステリー】Tomcatを殺したのは誰だ? (1/3) - @IT
  • [NMS] Java GC監視スクリプト-Young risk taker.

    #!/usr/bin/python ## # Analyze GC log script # # @author Rakuto Furutani # @date 2005/10/07 # import re, sys ## # LogGC is handle the gc log. # # @author Rakuto Furutani # @date 2005/10/07 # class LogGC: """ LogGC is handle the java GC log. """ ## # Constructor # # @param logfile GC log file name # def __init__(self, logfile): self.f = open(logfile, 'r') self.span = 60 self.gclist = [] ## # Pars

  • 1