サーバ

メモリリークトラブルシューティング記 – その1 : 自宅サーバがハング!

– その1: 自宅サーバがハング
現在このweblogをホストしている自宅サーバの構成は以下の通りです。
ハードウェア: iBook G4(1GB / 1TB)
OS: Mac OSX 10.5.5
VM: JDK1.5.0_16
APサーバ: JBoss AS 4.2.x
データベース: MySQL 5.0.x, PostgreSQL 7.4.x

正直 Mac OSX の JVM は安定性に欠けており、bus error で落ちることもしばしば。
bus error のときは単に JBoss を再起動することでしのいできました。
ただ、最近のアップデートで VM の安定性はだいぶ向上した感があります。

替わりに最近なんだかフリーズすることがあります。
2週間くらい安定して稼働していることもあれば起動して2,3日でフリーズすることも。

特にミッションクリティカルなアプリケーションが動いているわけではないので、しばらくは構わずJVMを kill / 再起動をしていました。
今回連休中にようやく重い腰を上げてトラブルシュートしたので過程を記します。

– その2: フリーズの原因は GC

– その3: 侍でヒープ使用量を確認

– その4: リーク箇所を確認する色々な方法

– その5: Memory Analyzer でヒープダンプを解析(最終回)