jdk6u23 で jps/jstat が動作しないあるある

お小遣いの残高と年齢以外の数値を計測する事は大好きなソメダです、おはようございます。

さて、皆様におかれましても、運用時の Java アプリケーションのヒープの利用状況の傾向監視は行われているとは思いますが、そういった用途に利用される事の多い jps/jstat といったユーティリティが、現在 (2011年01月) 最新の Java SE 6 update 23 では動作しない事があります。

これは、java.io.tmpdir を OS 標準のディレクトリ (Linux だと /tmp ) 以外に指定して JVM を起動した場合に発生し、例えば以下のような状況になります。

# ps -aef | grep java
tomcat   29030     1  0 Jan12 ?        01:04:01 /usr/java/default/bin/java <略> -Djava.io.tmpdir=/usr/java/tomcat/temp org.apache.catalina.startup.Bootstrap start
:
# jps
:
4519 Jps

jstat で直接 pid を指定しても駄目です。

# jstat -gc  29030 2s
29030 not found

こちら原因なのですが、jstat/jps (他に visualvm も) が、そのプラットフォームで起動している Java のプロセスを探すのに、/tmp/hsperfdata_<ユーザ名>/<プロセスID> というファイルを探すのですが、jdk6u23 以前は /tmp 以下に固定で生成されていたものが、jdk6u23 では java.io.tmpdir 以下に置かれるようになった事が原因です。実際上記の例でも java.io.tmpdir で指定したディレクトリに生成されています。

# ls  /usr/java/tomcat/temp/hsperfdata_tomcat/
29030

今の所の対処法としては、

  1. java.io.tmpdir を /tmp にする (Linux の場合)
  2. jps -J-Djava.io.tmpdir=/usr/java/tomcat/temp/ など、モニタリングツール側でオプションをつける

のどちらかです。後者の指定を行う場合、Tomcat のように別ユーザで jps を実行するには、読み込み権限の問題があるので、su する必要があったりもします。

# su - tomcat -c "jps -J-Djava.io.tmpdir=/usr/java/tomcat/temp/"

例にもあげた Tomcat は、デフォルトで java.io.tmpdir を $CATALINA_BASE/temp に指定して起動しますので、Java のバージョンをあげたら軒並みひっかかるハズです。Tomcat 本体の問題ではないにも関わらず、影響範囲が大きいからか、Tomcat の Bugzilla にも jps.exe and jvisualvm.exe cannot detect tomcat using jdk1.6.0_23 としてあげられてますし、Known Issuewiki からもリンクが貼られてます。既に Java 本体の方に バグ報告 されているので、今のところは上記の対処法で修正を待つ感じでしょうか。

蛇足ですが、この問題の根本となった修正が /tmp とか %TEMP% とかハードコードしているのやめようよ というものなんですが、Java も 6 にもなるまでも、こういった所が残っている事が趣深く、切ない気持ちになった年明けの一幕でした。

それでは今日も一日頑張りましょう。

backloglib 0.2.1 をリリースしました

0.1.1 のリリース から早一年以上、GAE でも多分使える、Backlog APIPython ラッパーの backloglib の 0.2.1 をリリースしました。予定より 9 日遅れ。。。詳細は以下より。

MA6 の期間が終わるまでには何とかリリースしようと思って頑張ったのですが、MA6 の応募〆切が明日まで、というのは、まぁ、アレですよ。。。。ごめんなさい。

さて、id:dragon3 さんの Perl 版は如何に (笑)

関ジャバで GC についてお話しました

久々(?!)の技術トークを本日関ジャバにてさせて頂きました。発表資料は以下の通りです。

トップ画像のクレジットは以下の通り。(CC の画像ですが、表記不足等あればご指摘もらえると嬉しいです)

(2010/10/02 追記)
id:shin さんにご指摘いただき、-Xincgc は現在の実装はコンカレントコレクタ (-XX:+UseConcMarkSweepGC ) が選択されるようになっていましたので、該当スライドから削除しました。

> -Xincgc -verbose:gc -XX:+PrintGCDetails

あたりをつけて適当なプログラム実行して頂いたら、確認出来ると思います。

尚、1.4.2 の資料ではあった、TrainGC の記述も 5.0 の資料から以下のように変わっています。

5.0 の資料では以下のように言われてます。

The incremental (sometimes called train) low pause collector: this collector is used only if -XX:+UseTrainGC is passed on the command line. This collector has not changed since the J2SE Platform version 1.4.2 and is currently not under active development. It will not be supported in future releases. Please see the 1.4.2 GC Tuning Document for information on this collector.

(追記ここまで)

今回は図が多くなる事がはじめからわかっていたので、小悪魔ちゃんバリに可愛いプレゼンを、と思って Cacoo で作成してみました。久しぶりに資料作成してみたら思いの他のボリューム増えちゃいました。

発表はといいますと、ブラウザの画面サイズがうまく出来ず、最初戸惑ってしまし申し訳なかったです。この辺りは事前準備で回避出来る所なので、次回はかならずやっておきます。。。今日の発表では

  • GC って結構面白いよ
  • プログラムの実行環境のテクノロジ知ることは大事だと思うよ

といった所を上手く伝えたいな、と思っていたのですが、はてさてどうだったのかしら、、、と。

USTは怖くてみれません。後、GC について興味もたれたら、以下の書籍はホンマに良いと思います。

ガベージコレクションのアルゴリズムと実装

ガベージコレクションのアルゴリズムと実装

WISH2010 に行ってきました

Cacoo もエントリされていることもあり、WISH2010 に行ってきました。振り返りがてらメモ書きます。

第一部「日本のウェブはいかにして世界を目指すべきか」

ここのまとめが色々と飛び出ていた話題をよくまとめられてますので、ココを読めば大体良いように思います。(笑。

率直な印象で、田中さんは作り手の視点、原田さんはビジネスの視点、枝さんはインキュベータの視点、といった三者三様の考え方、コトバ使いをしていて、さて、自分はどの視点でのモノ作り、サービス作りの視点に近いかな、と思いながら聞いていたのですが、概ね田中さんのお話が善し悪しではなく、一番スッと自分としては入る感じでした。やっぱりちゃんとモノを作って、ちゃんと使ってもらって、という所に国内、国外はないと思うのです。

で、本題とは外れるのかもしれないのですが、「世界」というと、GoogleAmazonApple みたいな「超」大企業、「超」大サービスを、みたいな文脈になってしまい、自ずと「資本」がどうした、「拠点」がどうした、といった話になる。それはそれで良いのですが、「そうじゃない戦い方」、「そうじゃない世界への出方」ってあるんじゃないか、と思うのです。インターネットは「恐竜」でないものでも「世界中からみつかる」ようにした場なのですから、ソフトウェアやサービスだって、「超大」ではなくとも浸透する可能性や方法がある、と。まだそういったロールモデルが身近に見えていないだけで。

また、ひとまず「資本」という考え方には、

ソフトウエア企業の競争戦略

ソフトウエア企業の競争戦略

でも語られている、「資本の毒」という側面もあるでしょうし、最近の私のもっぱらの起点になっているのが
Eric Sink on the Business of Software 革新的ソフトウェア企業の作り方

Eric Sink on the Business of Software 革新的ソフトウェア企業の作り方

にある、「小さな ISV 」だったりするので、無意識的に反駁を覚えてしまう感があるのも否めないのですが。

そんな事を感じつつも、今まさに日本のネットサービスの先端におられる方々の生の声は本当に力強く、単純に、頑張ろう、と思いました。 

第二部「プレゼンテーション」

ざざっと気になった事、面白かった事など、メモ。

カーリル | 日本最大の図書館蔵書検索サイト

話題(?!) の図書館検索。紙 copi の洛西さんの作られたサービス。これ、便利です。近所の図書館のウェブインターフェースは死んでいるので。。。スクレイピングして 5000 超もの図書館のデータを集めたとのことなんですが、どうやって揺らぎを吸収したのだろう、とか、色々疑問も。懇親会で話すタイミングあったのに、聞けなかったのが残念。。。

ソーシャルレンディングAQUSH|魅力的な利回りで新しいカタチの資産運用

ソーシャルレンディングという考え方を知りました。借り手の身元をどう保証するか、が肝にも思いますが。ビジネスの仕組み的な観点でいうと、このサービスが一番興味深かったです。

デコもじ|ウェブフォントで、ホームページが、ブログが、もっと楽しくなる♪

不勉強ながら、CSS3 の Webfont という仕組みを知りました。これ、地味かもしれないですが、デザインする人にとっては、大事な仕組みですね。Flex4 も TLF で文字表現に力入れてますし、テキストの気持ちよさ、みたいな所を追求したサイトもアリな気がします。Windows から Mac に変えて、何気に一番使っていて「気持ちよくなった」ところは「フォントの綺麗さ」みたいな所だったりしますので。

Cerevo - Home

一度 TypeP でライブの UST にチャレンジして失敗した経験もあり、専用機は魅力的に見えました。。。ま、何よりデバイスは良いですよね、会社の写真がすごく楽しそうな雰囲気でした。(笑

かわいいパソコンケース&バッグの「オリヒメ」

日本のモノ作りだけでなく、「消費者の目」も一流、とした辺りの着眼点が面白かったです。去年の ドレスファイル もそうなのですが、こういうリアル側からのネットへのアプローチって、中々視点切替えないと出てこないので、そういう視点でも面白かったです。

まとめ、

現在進行形で一生懸命ウェブで作っている人の生の姿、生の声を聞く事が出来て、単純にそれだけで行って良かったな、と思えました。頑張ろうと感じましたですよ。ボランティアをはじめとする運営の皆様、ありがとうございました&お疲れさまでした。

2010年08月01日のツイート

2010年07月31日のツイート