アプリケーションのトラブルシューティング


序文

ことの発端はwebアプリケーションのとある画面の応答性能が遅いと言う問題が出た。
環境の構築を任された後輩から色々弄ったらアプリからの応答がなくなったとのヘルプから調査を開始した。
原因は解消したのだが、原因特定までのロジックが知りたいとの依頼を受けた。
この辺は感覚知で解決していたのでまとめる意味を込めてアウトプットしてみます。

具体的に何があったのか?

APサーバであるjavaのヒープサイズの最大値を上げた事によってjavaが動作しなくなった。
OSの利用メモリは余裕で空いていたのですが、Javaが起動しない。
JDKが32bitの場合、最大利用メモリ数の上限が少ない事を知っていたので解決に至りました。

エラーログから特定したのですが、エラーログをコピるの忘れました。

問題解決までの簡単な思考

  1. 相談者を疑う
    相談者へ「何をどうしたらこうなった?」を聴取をして再現性を確認する
    戻せるのであれば、作業前の状態に戻して作業を再現してもらう
    戻せないなら、逆手順で手順のどこで事象が発生したかを確認(デバッグ?)する

  2. アプリケーション内部で何が起きているのかを確認する
    ログを確認して何が起きているのか確認する
    APサーバ、アプリケーション双方のログ確認について以下を確認する

    • プログラム
    • 設定
    • ライセンス
    • 外的要因
  3. 過去事例を確認する
    上記情報からあたりをつける。

    • ナレッジサイト
    • チケット
    • メッセージツール
    • 経験
    • ググる

 最後に

知識や技術の属人化ほど生産性を下げる要因は無いと思っていたのですが、
私がそ愚行を犯しておりました。
今後もお目汚しな記事を投稿していきます。