2014年8月23日土曜日

jvmのメモリ、最小と最大(XmsとXmx)

技術系ネタ。

JVMを起動するときにヒープサイズを指定するオプションに
XmsとXmxがある。最小サイズと最大サイズ。いままで認識間違っていた。

例えば、eclipseを起動するときに
Xmsに256mとかXmxに512mとか指定している。
上記の場合は最初にヒープメモリを256mを確保して、必要が有れば512mまで拡大する。
だけど、そこで疑問が、
ヒープメモリが256m以上必要になって拡大するときに空きメモリが足りなければどうなるんだろう?
いままではエラーで落ちると思っていた。

だけど、実は
「JVMは起動時に最大ヒープサイズ分領域を確保する。」らしい。
なので、拡大するときにメモリが足りないなんて事はないみたい。
じゃあ、最小サイズなんて指定いらないんじゃない?って思うが
最大サイズ分確保するだけで、最初に割り当て(コミット)するのは最小サイズみたい。

ちょっとややこしいけど、
起動時に最大サイズでここまで使いますよって線引いて
(この時点で他のアプリからの使用はできなくなる)、
実際に使う準備をするのは最小サイズって感じかな。

よく最小サイズと最大サイズを合わせておこうっていうのは、
実行時の最小サイズを超えた分への割り当ての時間を省略するため。
まあその分、起動時に時間かかるけど起動時なんて別に時間かかっても良いし。
だけど、起動を何回も繰り返すような場合は最小サイズは小さくした方が良い。

なるほど、いままで勘違いしていたのでメモ書き。

2014年8月22日金曜日

礼儀として。。。

ちょっとデリケートな問題だけど、
時々、職場とかテレビとかで絶対、ズラでしょ!!って人がいる。

当然、本人も気付いているのではないかと思うんだけど、
なぜ、ズラをかぶるんだろうか?

それはやっぱり礼儀としてかな、
会社に行く時にスーツを着る様に、ズラをかぶる。
わかっていても礼儀としてかぶる。
やっぱりそうなんだろうな。

周りとしてはもちろん聞く訳にもいかない。
が時々、目線が頭にいってしまう時があるけど。

2014年8月19日火曜日

jmeter、スレッド数とランプアップとループ回数

たまには技術系

jmeterのスレッド数とランプアップ(Ramp-Up)とループ回数。

スレッド数は想定ユーザー数。
ランプアップは全てのスレッド数を起動する時間。
ループ回数は起動したスレッドの処理を繰り返す回数。

当初の認識では
ランプアップ経過後に、また同じランプアップ時間をかけてループ回数分、
スレッドが起動すると思っていた。。。

だけど、正しくは
スレッドを起動するのは一回のみ。
スレッドはスレッド数で指定した値以上増える事はない。
ランプアップ時間をかけてスレッドを起動したら後はそのスレッドを使い回す。
起動したスレッドを使い回す回数をループ回数で指定する。
スレッドは起動した後はランプアップに関係なく、ループ回数分リクエストを繰り返す。

たとえば、
1リクエストの処理時間が5秒くらいの処理の場合に
スレッド数が1
ランプアップが60秒、
ループ回数が2
とした場合は
当初の認識ではスレッドが一つ、起動して60秒後にループ回数が2なので
もう一度起動すると思っていたが
そうではなくてスレッドが起動して、1リクエストが終わるとすぐに2リクエスト目(ループ回数分)に入る。
そのため上記の場合はランプアップは60秒だけど10秒程度で処理が終わる。

上記の例のスレッド数を2に増やして
スレッド数が2
ランプアップが60秒
ループ回数が2
とした場合は
だいたい1スレッドが30秒毎に起動する。

最初にスレッド1が起動して、30秒後にスレッド2が起動する。
スレッド1は起動して1リクエスト目(約5秒)が終わるとすぐに2リクエスト目に入る
2リクエスト目の終了までは約10秒。
その後、30秒経過してスレッド2が起動して2ループ分(約10秒)で終わる。

経過を表すと
0秒後  スレッド1起動、スレッド1の1回目のリクエスト開始
5秒後  スレッド1の1回目のリクエスト終了、ループ回数2回のため
     スレッド1の2回目のリクエスト開始
10秒後 スレッド1の2回目のリクエストが終了し、スレッド1が終了。
ここから11〜30秒までは待ち時間となる。
30秒後 スレッド2起動、スレッド2の1回目のリクエスト開始
35秒後 スレッド2の1回目のリクエスト終了、ループ回数2回のため
     スレッド2の2回目のリクエスト発行
40秒後 スレッド2の2回目のリクエストが終了し、スレッド2が終わってテスト終了
という流れになる。
※ランプアップ時間の経過を待たずに終了する。

スレッド数や処理処理に対してあまりランプアップ時間を長く取りすぎると
上記の様に空白の時間が出来てしまう場合がある。
空白の時間を作りたくなければスレッド数やリクエスト時間など考慮して
ランプアップ時間を短く調整するか、ループ回数を増やしたり、
ループ回数を無限ループ(リクエストが終了したらすぐに次のリクエストを開始する。)
にすると空白の時間は出来ない。

以上、久しぶりの技術ネタでした。

2014年8月18日月曜日

権限と権利と

押入れとかダンボールとか未成年の少女の事故のニュースが続いている。
なんとかならないのかな。

伊予市の件などでは
児童相談所の権限をもう少し強化する必要があるのかもしれない。
もしくは警察の介入を許すとか、怪しいと思ったら家宅捜査できるとか。

権限の強化は、反面、権利の侵害になる場合がある。
だけど、こと子供に関することである場合はもうちょっと権限を強化してもいいと思う。
親の権利云々言ってる場合じゃないし。そもそも子供の権利守らないといけないし。
権利の縮小になるかもしれないけどこれくらいならしょうがないと思う。

2014年8月11日月曜日

やっぱり金目でしょ?

福島に中間貯蔵施設建設で交付金3010億円

以前、大臣が
「最後は金目でしょ?」
発言で問題になったけど、
こんなニュース聞くと
「やっぱり金目でしょ?」
って言いたくなるな。

みんなわかってるんだけど口には出さないだけ。
だけど結局、最後は金で決着つけるしかないもんね。
極論だけど、いっその事交付金を住民に配って退去してもらうって方が良いかも。

これとはちょっと話が違うんだろうけど、
沖縄の補助金とか交付金とかもだんだん、たかりにしか思えなくなってきたよ。
「最初から金目でしょ?」
って言いたいくらいだ。ちょっと言い過ぎか。

2014年8月9日土曜日

仕組みの問題

地方議員の経費不正使用疑惑が出るわ出るわ。
氷山の一角だろうな。

だけど活動費の仕組みを知ると、使いたくなる気持ちもわかる。

なぜなら、使わないともったいないと思わせる仕組みだから。
上限はあるけど、使った分だけお金が出るんだったら誰だって使うでしょ。
しかもほぼノーチェックで。

会社とかだったら、上限なんてもちろんないし
領収書有りで経理がチェックする仕組みが働いているから
あまり不正は入り込まないんだろう。

活動費の仕組みを変えないと不正使用はなくならないだろうな。
不正が入り込みにくくする仕組みに「利益相反」がある。
これは、お互いの利益が相手の不利益になる関係のこと。
この関係だと、お互いに利益を上げるために相手の不備を指摘する。
不備を指摘されたくないから不備がない様にする。
その結果、不正が起こりにくく正常な状態が保てる。海外では常識みたい。
こういった仕組みでカバーしとかないと、どうしても不正が入り込みやすくなる。
たとえば、自分の会社を自分で監査しても信頼性がないのと同じ。

ちょっと違うけど、三権分立の例で
ケーキを切る人とケーキを選ぶ人を別々の人にするのに似ている。
ケーキを切る人と選ぶ人が同じであれば自分に有利に切って有利な方を選ぶ。
ケーキを切る人と選ぶ人が別々であれば切る人は自分に不利にならない様に
なるべく均等に切る。その結果、自然と均等な状態が保てる。

そんな仕組みが必要だな。

2014年8月5日火曜日

社会的損失

理研の笹井氏が自殺したらしい。

マスコミによる殺人じゃないのこれ?
もちろん、良くないよ、不正は。
だけど、みんな一度は夢見たんじゃない?STAP細胞に。
最近では夢みられるニュースなんて少ないよ。
ちょっとでも夢見られたんならいいんじゃない。
誰にも直接的な被害もなかったんだから。

52歳って、いままで積み重ねてきた経験を活かして
後輩を指導したり、研究成果を出したりする時期じゃないの。
経験というのは一朝一夕で出来る物ではない。
何十年かけて培ってきた経験と才能なのに、
それを活かせきれないなんて、もったいない、もったいない。
しかも自らの手で断ち切るなんて残念でならない。
山中教授と並ぶ位の人だったらしい。
惜しい、惜しいすぎるよ。社会的損失がでかすぎる。
日本は大きな損失をしてしまった。

ご冥福をお祈り致します。