2015年04月

に改造はできてUT終わって組み込んで一応動いたが今はヒットするデータが無いので、そのロジックは通らないので余り意味無し。
明日動かして様子を見よう。
まぁ改造前のでも本日はOOM出なかったけどな。

このエントリーをはてなブックマークに追加 mixiチェック

結構ぎりぎりを狙ってヒープサイズを大きく取ったらOOMが起きず。
しかし稼働時はOS全体で残りメモリ15MBになるのでちょっとSugarSyncが暴れると軽く突破するので危険。今日は特に問題無かったようだが…。GCのテキストは流れてしまった、-XX:+PrintGCDetails -Xloggc:log\GC.txtとオプション指定しているだけで世代管理してないので毎回上書きされてしまう故、土曜に目の前で動かしてすかさず取ろう。ローテーションするコマンド書けば良いのか。そこまでしなくてもあと2日だし。
ちなみに、読み込み処理の省メモリ化は、そういえばScannerクラス使えばフリーフォーマットでデリミタ依存の構造でも割と簡単そうだ。あったな、そういえば。私は一気に全部Stringに読んでからsplitでズバット分割が簡単で好きなんだが、時にはメモリ優先の事もあろう。

このエントリーをはてなブックマークに追加 mixiチェック

 となると戦犯はJava 8 u45が怪しいな。しかし今更戻せぬ。
 今のVPSだとこれ以上ヒープは増やせないしなー。とりあえず使わなくなったオブジェクトにnullを入れる呪いを施したが焼石に水だろうなー。スレッド絞るのは遅くなるからなー。
 あとソースを久々に眺めてたら、無駄に…というか、結局最後まで使わないデータファイルを読んでメモリ展開してる箇所を発見した。これは結構大きい。だが。これを事前に用不用を判定してから効率的に読み込む方式にすると、私の脳内シミュレートではおそらく余計OOMは出る筈。ボトルネックのお蔭で後段が助かってるパターンだ。…とは言えこの箇所は修正した上でデータ更新用ワーカスレッド数を絞るのが正道だろう。FTP用スレッドプールと、データを作るスレッドプールを分けておいたのは正しかったかも知れない。先見の妙。
 それとデータファイルはテキストなんだが、これも一気に全部読んでるからメモリを食ってる、というか実際結構ここでOOM出てるので、ちと効率落ちるけど1行読んでは解析して、の省メモリ型に改造せねば…。これはロジックちょっと面倒だな。フリーフォーマット故に。やはりソースコード方面で取り組むべきはまずはここか。
 後はバッチ起動前にSugarSyncを止めて、これが大体100MB程食ってるから、その分ヒープを増やしてやるとか。そもそも何GBあれば満足なのかまだ判明してないのでアレだが…。しかもSugarSuncはいまいち信用ならないのであまり擾乱させたくないが…。だがまぁこれはすぐ試せるのでやってみるか…。明日はこれでやってみて、ヤバい事が起きたら取りやめで。
 →早速で何だけど、止めるのはOKだが、コンソールから再起動するとコンソールが開きっぱなしになる問題発覚。

このエントリーをはてなブックマークに追加 mixiチェック

案の定、ヒープ不足で各スレッドでOOMが激しく起きている。というか良くその後も動いて一応正常終了してたな…。
眼前で動かした時に妙に遅く感じてたのはOOMとその前兆のフルGC多発だったせいか。
とりあえず疑惑のGS Collection のFastListをArrayListに置換してjar群9MBもクラスパスから外した。JVM 8からは往年のBEA JRockit風に、パーマネント領域がヒープに無いという話だが、まぁとりあえず外す。
戻れば戦犯確定、戻らなかったら無罪なので流暢で流麗と自讃してるAPI利用しつつ、OOM対策としては同時実行スレッド数を絞る方向で。あるいはSugarSyncを普段は落としておいてその分ヒープ上限を増やすか…いや、それは何かと不味い…。JMSの常駐プロセス落としても20MBしか増えないしな…VPSをメモリ1GBから2GBプランに乗り換えると月数百円増えるからどうしようかね。
VPSの値段と言えば今、毎月780円のWebKeepersが次回の更新から1080円になるんだよな。値上げ激しすぎ。つかそれWindows VPS SSDと同じ値段じゃん!乗り換えるか。でも今の環境は何故かコア数がOSから16個見えるので面白いから好きなんだよな。

このエントリーをはてなブックマークに追加 mixiチェック

昨日ArrayListから置換して本日1日様子を見たが、以前にも増してOOM多発。
まぁ確かにVPSのゲストWindowsも大分長らくリブートしてなくて素で500MB/1024MB消費してて怪しいからなー。本日リブートしてもう少し様子を見るが、どうもAPのログを見ると謎に時間掛かっていたのも気になる。GCかはたまたロックか。本日はログの世代が少なくて一番処理が多い時のが流れてしまったので、増やして明日見る。そいえばGCのログは標準出力だから今は全部上書きになってしまうな…。土日に手でやるか…。
疑惑が晴れたら、ご自慢の流暢だか流麗だかなメソッドも使ってみる。ダメならArrayListに差し戻しだ。
あ、そういえばTroveというのもあったな…。できればソース変更無しに、コレクションライブラリだけ差し替えて省メモリ、とかにしたいもの。しかしGPLか…つかこれ、プリミティブのListが売りか。HugeCollectionsというのもあるな。
それにしてもWindowsWindowsで、起動しっぱなしだと徐々にメモリを食っていくのは相変わらず。何かのキャッシュなのか。

このエントリーをはてなブックマークに追加 mixiチェック

先日行ったJavaのイベント、JJUGで紹介されてたライブラリをアフィサイト更新処理に使ってみた。
まぁ使ったと言っても、

List<Item> hoge = new ArrayList<>();

List<Item> hoge = new FastList<>();

に直しただけで、ライブラリ本来の売りの、流暢だか流麗だかなStreamっぽいメソッドは未使用。
話によると標準のCollectionより省メモリらしいので。
いや何か最近、VPSでのアフィサイト更新処理がしばしばOOMで失敗するんだよな。酷い時にはファイル壊したり。まぁそこは抜かりなくウォッチドッグ的なジョブを別途作ってて何か壊れてたらバックアップから次回までに直すけど。VPSのメモリが1GBしかないのが元凶という話もあるが、その前のVPSは512MBだったし。
仮にOOMが起きなくても省メモリは省GCであり、JavaにおいてGCの抑止はそのまま処理速度向上となるのだ。
ソース修正は上記一か所だけだったんだが、これ、彼方此方で使われてるリストなので*1、あちこちのバッチファイルのクラスパスに

;./lib/gs-collections-6.1.0.jar;./lib/gs-collections-api-6.1.0.jar;./lib/jcip-annotations-1.0.jar

を付けるのが結構面倒だった。
更新用に借りてるVPSは、メモリは足りないがディスクは潤沢なので、重複する事になるがやはりアプリケーション毎に専用libディレクトリを作ってそこに置いて

./hogelib/*

のように変えた方が良いかもしれない。ライブラリのバージョンとか上がった時の対応が今はきつ過ぎ。ディレクトリ指定にして、Ivyか何かで上手いことやってEclipseと自動同期する、みたいな事が出来ると良いのだが、まぁ特に急務では無い。
んで、肝心のメモリ使用量だが…。
余り変わらない。というか若干増えたような気がしないでもないでもない。いや正確に計測した訳ではなく、タスクマネージャを眺めて適当な事言ってるだけだが。そしてさっきOOM出た…。
 …そういえば発表資料をよく見ると、メモリ削減を謳っているのはMapとSetであり、Listについては言及が無いな…戻すか。jarが9MB使ってる分無駄だし。
 まぁOOMの件は同時実行スレッド数絞ればたぶん解決なんだよな。今、作り放題、Listも作り放題だから。

*1:まぁそうでないとやる甲斐が無いが…

このエントリーをはてなブックマークに追加 mixiチェック

大家から家賃の催促が。
はて?自動振り込みの筈だが…預金が底を突いたとも思えぬし…と久々に通帳記入したら、家賃用口座に預金は充分あるものの、確かに今年の1月から送金されていない。4か月滞納かよ!一体何事。
…そういえばあの信用金庫はオレオレ詐欺対策なのか、以前、振り込み額上限を後から勝手に引き下げたりしてたから、もしやまたもや勝手に引き下げたのではなかろうか。んで、その閾値がとうとう家賃を下回った、そんな気がする…。勝手な事をしやがって…。

このエントリーをはてなブックマークに追加 mixiチェック

会社の生協の端っこにはしばしば日替わりで行商が来る。
本日ははらドーナッツというのが来てて初めてなので買ってきたが、小さくて、しかも味が薄い。
良く来るミスタードーナツの方が大きくて豪華で良いな。値段は同じ位だし。

このエントリーをはてなブックマークに追加 mixiチェック

ボールペンや鉛筆に比べ、さらさらと筆圧無く書けて良いのだが、非常に紙を選ぶのが難点であり、しかも合う紙の善し悪しが書いてみないと分からぬ…。
100円ショップの偽コクヨノートであるコダマノートは最悪(滲むし裏までインクが抜ける)だが、同じく100円ショップの偽モレスキンなレザー風表紙ノートは滲まず抜けず良く書ける。紙を威張ってるCampasハイグレードなどは実は滲んだり。

このエントリーをはてなブックマークに追加 mixiチェック

しみる

このエントリーをはてなブックマークに追加 mixiチェック

↑このページのトップヘ