solaris2.6(UNIX)+SUN ULTRA-10で作成された環境で
cronを使用してLOGファイルをJAR形式に固める処理を行ったところ
ログファイルの大きさ、量にもよるのですが大体30分ぐらい
処理にかかっています

その間、Freeメモリが消費されたいくのですが、jarのプロセスが
終了したのにもかかわらずメモリが戻りません。ひどい時は通常
1.8Gあるfreeメモリが30kまで減少してしまいます
その他クーロンの設定した処理についても調査したのですが
やはり実行時間に比例して消費したメモリを開放していないように
感じます。

この現象はOSによるものか、また別のなにかが原因でこのように
なっているのか教えてください

宜しくお願い致します

このQ&Aに関連する最新のQ&A

A 回答 (2件)

jobの終了後本当にjarファイルを作成したプロセスは死んでますか?


何らかの理由で生き残っていたりしませんか?

a-kumaさんの指摘通り、単にアーカイブとして残したいだけならjarはやめてtar形式のがいいと思います。

javaのプログラムからハンドリングするなどの理由でjar形式にしたいなら、zipとかを利用する手もなくはないとおもいます。

jarファイルはUNIX用のunzipでも解凍できるので、同様にzipでつくったファイルをjavaに食わせることも可能ではないかとおもいます。
    • good
    • 0

う~ん、ひどいですねえ。



> jarのプロセスが終了したのにもかかわらずメモリが戻りません

だと、手の打ちようが無いですね。プロセス終了後のリソースの開放は OS の
責任範疇です。たとえ、Jar コマンドのお行儀が悪い(?)にしても、何とか
してくれないとねえ。


直接の回答にならないかもしれませんが、どうしても jar 形式じゃないと駄目
なんでしょうか?

tar+gzip だったら、もっと早く終了するだろうし、そんなにお行儀が悪いとも
思えませんので。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qfreeとpsでメモリ使用量が違う?

あるプログラムを動かす為に、既存環境であとどのくらいメモリが使用できるかを調査しています。
そこでpsとfree(top)で調べたのですが、
ps alx でのRSSの合計値とfreeでのused が合いません。
多少ならいいのですが、psのRSSはfreeの半分くらいにしかなりません。
どうもfreeで表示されるメモリ使用量には何か含まれているような気がするのですが...。
ps alxの合計値を空きメモリ容量としていいのでしょうか?

Redhat7.2
ps、freeはprocps version 2.0.7 です。

Aベストアンサー

RedHat7.3です。
ps -axl、free -t 、top(ダイナミックにメモリーや、CPUのユーセージをみることができますが。)

freeコマンドでみるのが正しいのではと思います。
freeコマンドで表示される「空きメモリ(free)」値にはハードディスクのバッファキャッシュに利用される「buffer」のメモリ量が含まれていません。実際の空きメモリ容量を知るには,「buffer」と「free」値を加える必要があります。

Qクーロン実行時のメール通知(Solaris)

クーロン実行時に成功失敗がメールにて通知されますが
これを通知しなくするような設定は有りますでしょうか?
(OS Solaris2.6 SPARC版)

こんな感じで使ってます。
0 * * * 1-5 /opt/check.sh

よろしくお願いします。

Aベストアンサー

Solarisでのcrontabの設定は知りませんが、普通のUNIXでは、cron
で実行したコマンドが標準出力や標準エラー出力に何かを出すと、
メールで通知されます。なので、
/opt/check.sh >/dev/null 2>&1
のように、両方 /dev/null にリダイレクトしてしまえばメールは
来なくなると思いますが、いかがでしょう?

QSUN Solaris8 サーバ間の時刻同期

タイトル通り SUNサーバ間で時刻同期を取りたいのですが
どの様な、方式で行うのが、簡単でしょうか?

SHELLより 日 1回時刻同期を取ろうと考えてます。

Aベストアンサー

rdateというコマンドがあります。

#/bin/rdate hogehoge

で、hogehogeに時刻を合わせるサーバの名前を入力します。
但し、相手先はntpなどで時間が正しい事が原則です。相手先の時刻が違うとrdateを実行したマシンの時刻も狂ってしまいます。(^^;;
詳しくはmanしましょう。

因みに、時刻設定は、shellで書くよりもcrontabに起動時間を決めて直接書いた方が楽だと思いますよ。:-)
参考まで…

Q多重処理下のメモリ

一つのメモリ(0番地からMAX番地まで)に複数のプログラムを
置くと、番地はどうなるんですか?
特に、変数の番地やジャンプの命令の飛び先番地が、2つ目以降
のプログラムの場合どうなるんですか?
問題が起きた場合どういった解決方法があるのですか?

Aベストアンサー

模範的には再配置(relocation)という技術を使っているというのが正解ですね。

再配置には、静的再配置と動的再配置があります。前者は、メモリに入れる
(ロードする)前に各アドレスの参照部分を修正することで再配置をします。
そのためには、どこでアドレスを参照しているかを別に記録しておく必要があ
ります。後者は、すべてのアドレスをPCに対して相対的に参照するようにプロ
グラムを構成しておき、アドレスを参照するときにプロセッサが自動的に目的
アドレスを生成することで、再配置を達成します。これらのいずれかが可能な
プログラムのことを、再配置可能(relocatable)なプログラムといいます。

ところが、UNIXなんかでは、ロードモジュール本体はいわゆる再配置可能になっ
ていません。ほとんどのプログラムは固定の番地にロードされることを前提に
作成されています。近代的なプロセッサはプログラムが利用する論理アドレス
を動的にメモリが利用する物理アドレスに変換するような装置を内部または外
部に備えています。プロセスの切替えごとに、そのアドレス変換表をとりかえ
れば、マルチプロセッシングが可能というわけです。

模範的には再配置(relocation)という技術を使っているというのが正解ですね。

再配置には、静的再配置と動的再配置があります。前者は、メモリに入れる
(ロードする)前に各アドレスの参照部分を修正することで再配置をします。
そのためには、どこでアドレスを参照しているかを別に記録しておく必要があ
ります。後者は、すべてのアドレスをPCに対して相対的に参照するようにプロ
グラムを構成しておき、アドレスを参照するときにプロセッサが自動的に目的
アドレスを生成することで、再配置を達成し...続きを読む

QSUN OSのパッチの当て方

SUN OS 4.1.3_U1を使っています。
OSの不具合解消でパッチを当てる必要があるみたいなのですが、やり方がわかりません。
パッチの当て方を教えてください。

Aベストアンサー

SUN OS 4.1.3_U1 はかなり古いバージョンなので、最近のSolaris7~8
とは方法がちがいます。
SUN OS 4.1.3_U1 は Solaris 1.1.1B に相当します。
必要なパッチはここから探してください。

http://jp.sunsolve.sun.com/pub-cgi/show.pl?target=jindex&type=custom
http://jp.sunsolve.sun.com/pub-cgi/show.pl?target=jpatch_ref&type=custom

パッチ適用の方法は解凍した中のドキュメントを確認してください。


このカテゴリの人気Q&Aランキング

おすすめ情報