タグ

heapとjavaに関するkiririmodeのブックマーク (6)

  • ここが大変だよ、JavaのGC/メモリ管理

    Webシステムを安定稼働させるには、考慮しなければならないことは数々存在する。システムの適切なサイジングを行うことも、その1つだ。 今回は、その中でもJavaVMのメモリのサイジング(見積もり)とGC(ガベージ・コレクション)に着目して説明する。 現象の見え方 今回は、以下の問題についての話だ。 メモリサイジングをミスした場合、業務ピーク時のGCの多発や長期化からこの現象に陥る場合がある。CPU利用率が100%に張り付いて性能が出ない場合は、GCが原因かを疑う必要がある。その場合、まずはGCログを参照し、GCの処理時間や発生頻度から1分ごとのGC処理の占有率を確認してみるとよい。 占有率が大きい場合、アプリケーションの処理やメモリのサイジングを見直す必要がある。以降では、GCを考慮したメモリのサイジングについて説明する。 JavaVMのメモリ空間はどうなっているのか 初めに、Cosmine

    ここが大変だよ、JavaのGC/メモリ管理
  • キャッシュが性能劣化をもたらす“なぞ”を解く― データのキャッシュとコネクションプール ―

    今回のワンポイント データベースアクセスを減少させるために、アクセスが頻発する参照データをキャッシュに入れた。しかし、期待とは異なり性能が落ちてしまった。メモリをキャッシュのために使いすぎる弊害と、コネクションプールの有効な使い方を学ぶ。 キャッシュを使っているのにパフォーマンスが落ちる あるシステムでは、データベースアクセスを少なくしようと、参照するデータをアプリケーション・サーバの起動時にデータベースから取得しメモリ上に保持していた。これは、別に悪い考え方ではない。データベースへのアクセス回数の削減は、性能向上につながるからである。しかし、このシステムではそうならなかった。ガーベジコレクション(GC)が頻発し、OutOfMemoryErrorまで発生してしまった。性能向上どころか、むしろ問題を増やしてしまったのである。アプリケーションでデータをキャッシュする場合、メモリ容量の見積もりが

    キャッシュが性能劣化をもたらす“なぞ”を解く― データのキャッシュとコネクションプール ―
    kiririmode
    kiririmode 2010/02/16
    キャッシュするとヒープに溜まってフルGC走りやすくなる
  • IBM Developer

  • ファイルアップロード/ダウンロードに潜むわな- 大容量、高負荷時の注意点 -

    今回のワンポイント Webシステムにファイルアップロードやダウンロード処理を取り入れているケースは多い。また、世の中にも、いくつかのサンプルソースや参考文献が出回っており、開発も行いやすいといえる。しかし、利用する場合には、アプリケーションサーバ全体の性能劣化やタイムアウトといったいくつかの問題を考慮することが重要だ。実際に発生したトラブル事例を交え、その問題点や注意事項について解説する。 ファイルアップロード/ダウンロード処理に潜むわなとは? ファイルアップロードやダウンロードといっても、小さなファイルを扱っている場合は問題になる可能性は低い。しかし巨大なファイルを扱う場合や、通信回線の品質が悪く、ファイルアップロードやダウンロードにかかる時間が長い場合には、注意が必要である。 このような場合、以下の問題が発生する可能性がある。 サーバリソースの問題 無応答問題 タイムアウト問題 以降で

    ファイルアップロード/ダウンロードに潜むわな- 大容量、高負荷時の注意点 -
  • @IT:事例に学ぶWebシステム開発のワンポイント(6)APサーバからの応答がなくなった、なぜ?

    今回のワンポイント アプリケーション・サーバから応答がない、いわゆる無応答状態は、ベンダのサポートセンターに寄せられる質問でも数が多いといわれている。無応答状態の原因の多くはGC(ガベージ・コレクション)にあり、これはGCチューニングにより解消可能だ。今回の記事では、GCチューニングにより無応答状態を解決する道のりを紹介していく。 サーバから応答がない、なぜ? あるとき、長時間レスポンスが返ってこないという事象が発生した。定期的な応答時間の監視から、無応答状態はアプリケーション・サーバを起動してから数時間経過すると発生し、数分間無応答状態が続いた後に再び正常に処理を開始することが分かった。 無応答の原因を探る 筆者はこの現象を見て、無応答が数分間で終わっていることからガベージ・コレクション(GC)が原因であるとの仮説を立てた。GC実行中、アプリケーション・サーバのCPUはGCのためだけに使

    @IT:事例に学ぶWebシステム開発のワンポイント(6)APサーバからの応答がなくなった、なぜ?
  • Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か

    GC周りでトラブルシューティングした際の経験や、Web等で調べたことをまとめてみる。 前提 ・JVMは、Sun Javaを想定。(他は使ったことないです。。。) ・Sun Java 1.5-1.6を想定。 目標 マイナーGC、Full GCそれぞれが頻発することなく、かつそれぞれの実行時間を1秒未満に抑えること。 マイナーGCは1秒未満どころではなく、もっと短くなるべき。どれくらいが理想かは?(0.1秒未満ぐらいを目指したい?) 連続した負荷状態(想定されるピークアクセス)でもOutOfMemoryErrorが発生しないこと。 理想的な状態は、上記に加えて、Full GCの発生が低頻度であること。 具体的には、できるだけマイナーGCで短命オブジェクト(1回使ったらもう使わないようなオブジェクト。逆にセッションオブジェクト等は長命オブジェクトとなる)を破棄させて、短命オブジェクトが、Tenu

    Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か
  • 1