• 締切済み

CRON配下で起動しているプロセスがメモリを開放しない?

solaris2.6(UNIX)+SUN ULTRA-10で作成された環境で cronを使用してLOGファイルをJAR形式に固める処理を行ったところ ログファイルの大きさ、量にもよるのですが大体30分ぐらい 処理にかかっています その間、Freeメモリが消費されたいくのですが、jarのプロセスが 終了したのにもかかわらずメモリが戻りません。ひどい時は通常 1.8Gあるfreeメモリが30kまで減少してしまいます その他クーロンの設定した処理についても調査したのですが やはり実行時間に比例して消費したメモリを開放していないように 感じます。 この現象はOSによるものか、また別のなにかが原因でこのように なっているのか教えてください 宜しくお願い致します

みんなの回答

  • mph
  • ベストアンサー率54% (39/72)
回答No.2

jobの終了後本当にjarファイルを作成したプロセスは死んでますか? 何らかの理由で生き残っていたりしませんか? a-kumaさんの指摘通り、単にアーカイブとして残したいだけならjarはやめてtar形式のがいいと思います。 javaのプログラムからハンドリングするなどの理由でjar形式にしたいなら、zipとかを利用する手もなくはないとおもいます。 jarファイルはUNIX用のunzipでも解凍できるので、同様にzipでつくったファイルをjavaに食わせることも可能ではないかとおもいます。

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

う~ん、ひどいですねえ。 > jarのプロセスが終了したのにもかかわらずメモリが戻りません だと、手の打ちようが無いですね。プロセス終了後のリソースの開放は OS の 責任範疇です。たとえ、Jar コマンドのお行儀が悪い(?)にしても、何とか してくれないとねえ。 直接の回答にならないかもしれませんが、どうしても jar 形式じゃないと駄目 なんでしょうか? tar+gzip だったら、もっと早く終了するだろうし、そんなにお行儀が悪いとも 思えませんので。

関連するQ&A

  • cron起動ができなくなりました。

     Solaris8のマシンを正常にシャットダウンをせず、いきなり電源を切断してしまいました。それ以降、クーロンに登録されていたアプリケーションが動かなくなり、困っています。  /var/cron/logには以下のようにメッセージが記録されています。  1.この137とは何を意味するのでしょうか?  2.また教えてgoo以外でもUNIX関係の、このような「教えて」サイトがありましたらご紹介いただけませんか。 よろしくお願い致します。 > CMD: /c言語で作った実行モジュール名 > /dev/console > root 3803 c (木) 1月 12 15:05:00 2006 < root 3803 c (木) 1月 12 15:05:00 2006 rc=137

  • メモリの開放について

    いつもお世話になっております。 メモリ開放のお作法について教えてください。 int* p ; p = (int*)malloc( 100 * sizeof( int ) ) ;  ※ p = (int*)malloc( 100 * sizeof( int ) ) ;  ※ p = (int*)malloc( 100 * sizeof( int ) ) ; free(p); このような記述をした場合、※の付いている2行でメモリ確保した 領域は開放されるのでしょうか。 (メモリ確保に失敗した場合の処理は省略してます。) よろしくお願いします。

  • マイクラサーバーのメモリ開放をしたい

    こんにちは。UBUNTUを活用してマインクラフトサーバーを運営しているのですが、長期間使用するとサーバーが勝手に落ちてしまいます。 自分で検索したところメモリ開放ができずにJAVAが落ちてしまうということで、定期的に再起動でメモリ解放をしています。 ただ、再起動するタイミングにプレイヤーがいたりと、運営がうまく行っているとはいえません。 このメモリ解放を再起動せずに行う方法があれば知りたいです。 動作環境↓ CPU: Intel Core i3 7100 MEM: 4G x2 HDD: 500GB Ubuntu 20.04 LTS サーバー起動ファイル start.sh↓ #!/bin/bash java -Xmx6G -Xms6G -jar papermc.jar

  • cronでエラーがでる

    Solaris2.6のサーバで cronに設定した時刻ぴったりにプログラムが起動されません。 何十秒か遅れて起動されてしまいます。 cronには 43 13 * * * /unyo/yeIunyou/yetg/yes/shell/yesjctl4.sh と設定してあります。 cronのログを見たら、 > CMD: /unyo/yeIunyou/yetg/yes/shell/yesjctl4.sh > root 27105 c (木) 4月 25 13:43:34 2002 ! unexpected pid returned 27097 (ignored) (木) 4月 25 13:43:34 2002 < root 27105 c (木) 4月 25 13:44:38 2002 と書いてありました。 実際に処理は正常に動いているのですが、 実行時間がずれているのと 3行目のメッセージの意味がわかりません。 予想される原因などがわかる方いらっしゃいましたら 教えてください。 よろしくお願いします。

  • メモリ等を調べるコマンド?

    UNIX-Solarisなのですが、 サーバの現時点でのメモリ、CPU、HDD容量などを UNIXコマンドで調べる方法はないのでしょうか? HDD容量は DFコマンドで見ることができるのですが、 メモリ、CPUなどはやっぱりサーバの再起動時しか 見ることができないのですか? WEBサーバとして利用しているのでできれば 再起動以外の方法で調査したいのですが。。。 SUNのサーバ数種類で、引き継いだものになります。

  • CRONに組み込んだバッチが動かない

     クーロンで二つのバッチをスケジュールしてるのですが  二つ目のバッチが動きません。   なにが原因なのでしょうか?  ** cron_file の変更**  # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.18554 installed on Tue Apr 4 13:15:59 2000) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) 0 0 * * * /u02/oradata/bat/A001.bat > /u02/oradata/bat/A001.log 0 * * * * /u04/tanaka1/bat/B001.bat > /u04/tanaka1/bat/B001.log   * /u04/tanaka1/bat/B001.bat が 動かない    B001.bat は chmod 777 で実行権限を付与        $ B001.bat と 打つと    コマンドが見つからない と エラーメッセージが出ます。    一つ目のバッチは A001.log のタイムスタンプから動作してると思われます。    

  • CRONを使って、アクセスログを毎日メールで受け取りたい

    CGIでホームページのアクセスログを取得しているのですが、この取得したファイルを、毎日決まった時刻に添付ファイルにして、メールで受信したいのですがどのようにすればよいでしょうか? CRONというものを使えばよいということまでは分かったのですが、CGI入門者の私から見てどのように設定すればよいのかまったく分かりませんでした。 TelnetとFTPを使って、圧縮解凍ができるレベルのUNIX?の知識です。 また、CRONは、さくらレンタルサーバーのスタンダードを使っているため可能ということでした。 何か、参考になることを教えていただけると幸いです。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • cron設定で正常に動作しない

    Solaris8でcronの設定を行っております。 まず /var/spool/cron/crontabs/rootファイルに 30 6 * * * /usr/local/shells/rsync-docs_com.sh を追加しました。 cronのログを確認したところ以下のメッセージが表示されていましたが、実際に処理は動いてなさそうです。 > CMD: /usr/local/shells/rsync-docs_com.sh > root 22386 c (月) 10月 9 06:30:00 2006 < root 22386 c (月) 10月 9 06:30:00 2006 rc=1 スクリプトファイルは処理が実行されるとログを出力するように設定していますがログが出力されません。 # sh /usr/local/shells/rsync-docs_com.sh # で手動で実行すれば正常にログも出力されます。 ------------------------------------------------------------------------ #!/bin/sh LOG_DIR=/home1/WEB_BACKUP/rsync_logs DAYS=30 /usr/bin/find $LOG_DIR -name 'rsync_*.log' -mtime +$DAYS -exec /usr/bin/rm {} \; /usr/local/bin/rsync -av --delete rsync://WWW7/www7-doc /home1/WEB_BACKUP/ www/docs_com >$LOG_DIR/docs_com-`date +%m%d%H%M`.log 2>&1 ------------------------------------------------------------------------ 何が原因か分かりますでしょうか? よろしくお願い致します

  • fedora11でのcron設定

    fedora11,apache,php5の環境でcronを使いたいのですが、動きません。。 状況が、 fedora11 php5 apache を使用していて、cronを使ってphpの定期実行を行いたいのですが、どうしてもうまくいきません。 かなりググってはみたのですが、liuxについては初心者なので、どうにもわかりません。 設定内容が、 /etc/crontabが、 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ * /1 * * * * apache /usr/bin/php /var/www/html/cron.php で、/var/log/cron でログを確認したところ Jul 28 19:00:01 host CROND[8417]: (apache) CMD (/usr/bin/php /var/www/html/cron.php) となっていてこれが一分ごとに出てきます。 cron.phpにはファイル追記の処理を書いてあります。 エラーではないようなのですが、ファイル操作が行われていないようなので動いていないようなのです。 ローカルホストでphpを実行したらちゃんと動くのでphp内のミスではないようです。 パーミッション関係だったらログにエラーが出そうなものですし、、、。困っています。。 どなたかお知恵を貸していただけませんでしょうか、よろしくお願いします。

  • 定期的に.plを動かすには(cron?)

    1時間に1回、POPサーバを見に行き、受信メールがあればDBにチェックをつけるという処理をしたいと思っています。 そのプログラム(perl)は何とか作成できそうなのですが、定期的にそのperlプログラムを実行させる方法が分かりません。 UNIX系であれば、cronかなと思うのですが、ファイル自体を動かす事ができるのでしょうか? また、定期的に動かす方法が他にもあるのでしょうか? どうかご教授下さい。よろしくお願い致します。