VisualVMとはJConsole、jstat、jinfo、jstack、jmapなんかを全部まとめたすごいやつ。 JDK6から入ってるの。まじ便利なので紹介しときます。 なにができるの? jstatdとかJMXを利用して、リモート環境のJVMの情報を取得することができます。 もちろんローカルでもいいんだけど。 JVMの構成情報、ヒープダンプの取得、スレッドダンプの取得、パフォーマンスとリソース消費に関する情報なんかがちょっと素敵なGUIで確認できるツールです。 どうやって使うの? visualVMのサイトから最新版をダウンロードします。 んでbinのなかにあるshellかexeファイルをキックすれば起動します。 あんまりなんでも監視できてもあれなので、今回はJMXを使った方法で行きます。 監視対象のアプリの起動オプションに下記のオプションを加えてあげます。 Tomcatの場合はsete
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
こんにちは、DBAのたなかです。 過去のバージョンからMySQL 5.6へのバージョンアップはmysqldump推奨ですが、そうでなくても(複数のメジャーバージョンをまたいだバージョンアップとか)mysqldumpを使わなければならないケースはたまにあります。 …これ、面倒じゃないですか? あ、いや、時間がかかるから面倒っちゃ面倒なんですが、個人的にmysqlスキーマ周りがすごく面倒で。 前提として、(–single-transaction || –lock-all-tables) && –all-databases && (–master-data || –dump-slave)でやってます。–skip-add-drop-table しておかないとmysqlスキーマ内のテーブルを容赦なくDROPされて再作成されるので、バージョン間でカラムの数が変わったりしていると困る(たまにやる)だから
サーバ管理ツールのエージェント みたいなソフトウェアをインストールしやすくするために、rpm / deb パッケージを作りたい。 しかし、rpm / deb パッケージ化するためには、それぞれ CentOS(RedHat)、Debian(Ubuntu) 環境でパッケージ化することになる。 社内ではこれまでパッケージ化の専用ホストがいて、そこで spec ファイルや init スクリプトを置いて rpmbuild コマンドとか debuild コマンドを叩いてパッケージを作成していた。 さらに、アプリケーションエンジニアからインフラエンジニアに依頼するという形をとっていた。 この方法の問題点として、以下の3つがある。 spec ファイルや init スクリプトなどをプロジェクトの Git リポジトリで管理しづらい。つまり、レビューとかがやりにくい。 リリースフローを自動化しづらい。具体的には
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く