2005年10月05日

転職した先輩がフットサルに誘ってくれて、
今日はほんとは浦安まで行くはずだったのに。
雨降っちゃって、中止。

すげぇ残念。もう気分がサッカーモードだったので。

なんかテンションが下がって、チンタラチンタラ仕事しちゃって。
結局夜中まで。

しかも今週の日曜は出勤らしい@市ヶ尾のセンター。

今度はバッチじゃなくて、Webアプリケーションの方の性能対策。
おそらく何千万回とかループが回るわけじゃないから、
やるとしたらSQLなんだろうなぁ。
DBまわりはほんと苦手なんですけど・・・。

っていうか、今日びっくりしたことがあって。
センターからバッチでOutOfMemoryErrorが出ました!
なんていう電話がかかってきた。
んでJavaの起動オプションみてもらったら、デフォルトです、、って。

ちょーいかちいサーバー使ってんすよ。
ハードはまじすごいんすよ。
それを、あなた。
ヒープ領域をデフォルトの64メガで蹴ってどうすんだよって。。

まぁ、それはそれとして、いい機会だ、とか思って
いろいろ調べてみた。JavaVMの起動オプション。

そしたら、-serverオプション。

JavaVMって二つの実装が組み込まれてる。
clientとserver。
で、デフォルトではclientで起動する。
clientってのはいわゆるAppletとか用で。
起動が早くて必要なメモリ量を最小限にしてくれる。
-serverオプションをつけて、はじめてサーバーあぷりで
最適な起動がなされるってわけです。

・・・。
実は前に俺が作ったシステムってclientでバッチが
動いてるのね。。って。
どうなんだろう。電話してみようかなぁ、昔のお客さん。
たぶん早くなるよ。処理。
こんなページもありました。。

他にもUseBoundThreadはSolaris9じゃ使えない、とか。
各ベンダのVMによってもいろいろ違うみたい。
っていうかそもそもカーネルスレッドとJavaのスレッドの結びつきとか。
Light Weight Processとか。全然よくわかんない。
英語の文献しかなかったり。日本語の文献みても翻訳おかしかったり。

んでどうやったらGC意識して最適化した起動方法あるかなぁとか思ってきて。
New領域の指定とか。New領域の中でもEdenとFromとToとか。
NewRatioを指定したときと、NewSizeを指定した時はどっちが優先されんの?とか。

これは片手間で調べられないよなぁって。
しかも、いろいろオプション指定しながら動作確認してみないと
わかんないし。。
そもそもNew領域のデフォルトサイズはSolaris9だといくつとかも
よくわかんなかったり。

ってことでとりあえず業務の人たちには
“-server -Xms512m -Xmx512m -XX:NewSize128m -XX:MaxNewSize128m”
で実行してくださいってお願いすることにしました。

もし、この辺詳しい人がいたら、、いろいろ教えてください。。。

しかし、このシステムテスト後半の土壇場で。。

コメント

タイトルとURLをコピーしました