• 締切済み

freeメモリを回復させる方法

RedHatLinuxですがOSをアップグレードしました。そうしてらそれまでmemoryのfreeが毎日4:00になると回復していたのがまったく回復しなくなりました。/var/log/cronには設定時刻通りにログ(run-parts /etc/cron.daily)が残っています。memoryを回復させているのはcronではないのでしょうか?今まで通りメモリを回復させるにはどうしたらいいでしょうか? OSはRedHatLinux7.0から7.3にアップグレードしました。

  • frfr
  • お礼率58% (21/36)

みんなの回答

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.2

>Mem: 643252K av, 624596K used, 18656K free, 0K shrd, 171644K buff こういう、瞬間的な数字を見てもわからないです。 毎日どれくらいのペースでfreeサイズが減り続けているのでしょう? >どれが「怪しそうなプロセス」なのか判断がつきません。 topやpsコマンドを数日走らせて、どのプロセスのメモリ使用率が 増え続けていくか、確認すれば良いです。 エクセルに取り込んでグラフ化すれば、分かりやすいですね。 >topでいつ調べてもfreeは十数MB程度で変化はありません。 変化がないという事は、freeサイズは一定なんですね。 アップグレードした為、機能が増えてたくさんメモリが必要になっただけでは? 不要なデーモンを止める、という方法もあります。

frfr
質問者

お礼

教えていただいたことを参考にいくつかトライしてみましたが結果的には「よくわからない、できなかった」でした。 どうもありがとうございました。

frfr
質問者

補足

返信が遅くなり申し訳ありません。 >毎日どれくらいのペースでfreeサイズが減り続けているのでしょう? 起動直後はfreeは500MBほどありますが約1日かけて10MB程度まで下がります。その後、freeは10MB程度で推移します。Swapのusedは0のままです。 >topやpsコマンドを数日走らせて、どのプロセスのメモリ使用率が増え続けていくか、確認すれば良いです。 今後トライしてみます。 >不要なデーモンを止める、という方法もあります。 分かる限りの不要と思われるものを停止しましたがfreeは回復しませんでした。 OSのバージョンアップ前は定期的(毎日4:00)にfreeが回復していたのですが。これはどんな仕組みによるものなんでしょうか?

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.1

回復したとか、回復しないとか書かれていますが、 具体的な数値、どんなコマンドで調べたか、その実行結果、実メモリ/swap領域のサイズなど、書かないと 適切なアドバイスがもらえないですね。 他に、psコマンドやtopコマンドで怪しそうなプロセスを調査したり、ゾンビプロセスなど ゴミが残っていないか確認しましたか? >memoryを回復させているのはcronではないのでしょうか? 基本的にはカーネルのお仕事です。

frfr
質問者

補足

失礼しました。 topで調べました。結果は、、 126 processes: 124 sleeping, 2 running, 0 zombie, 0 stopped CPU states: 1.5% user, 0.4% system, 0.0% nice, 1.6% idle Mem: 643252K av, 624596K used, 18656K free, 0K shrd, 171644K buff Swap: 578536K av, 0K used, 578536K free 284544K cached この中の「18656K free」がOSのアップグレード前には毎日4:00に約150MB回復していました。それがOSをアップグレードしたらtopでいつ調べてもfreeは十数MB程度で変化はありません。 >psコマンドやtopコマンドで怪しそうなプロセスを調査したり どれが「怪しそうなプロセス」なのか判断がつきません。調べるのにお勧めのサイトはありませんか? OSのアップグレード前のように毎日freeを回復させるようにするにはどうすればいいでしょうか?

関連するQ&A

  • バックアップの自動化に出てくる run-parts とは?

    Fedora Core2 にてバックアップの自動化を調べていて、crondを見つけたのですが、run-partsの意味が良くわかりません。コマンドなのかと思って調べてみましたが、よくわかりませんでした。run-partsとはどういった意味があるのでしょうか。 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly

  • logrotateの実行時間

    logrotateで「/etc/cron.daily/」以下に日次で実行したいスクリプトを置いていますが、 一部のログファイルを「0時」にローテートされるようにしたいです。 ネットで検索してみたところ「/etc/crontab」にrun-partsの指定があるという資料は見つけたのですが 私のサーバ(CentOs6)にはそのような記述が見当たりません。 「/etc/cron.daily0」のようなディレクトリを作成し、そこに記述された内容は毎日0時に実行するといったことは可能でしょうか?

  • cronの実行がうまくいかない。

    ubuntu18.04 LTSでcronのテストをしているのですが期待通りに動きません。 下記で、6時42分にログローテートが行われません。 原因と対策について教えて下さい。 ・/etc/crontab 42 6 *** root test -x /usr/sbin/anacron || (cd /&& run-parts --report /etc/cron.daily) ・/etc/cron.daily logrotate の記述がある。 ・/etc/logrotate.conf include /etc/logrotate.d の記載がある。 ・/etc/logrotate.d/logrotate_1.conf /tmp/rotate/test.log {   daily compress maxsize 1M create 0660 root root rotate 5 } ・/tmp/rotate/test.log が存在している。 尚、 ・手動実行 sudo logrotate -f /etc/logrotate.d/logrotate_1.conf では、 /tmp/rotate 実行後に、 test.log test.log.1.gz が存在します。

  • /etc/cron.daily/logrotateのエラー対策

    debian3.1を使用しています。 本日このようなcron実行時のエラーメールが届きました。 どのように対応すればいいのでしょうか? /etc/cron.daily/logrotate: There was no data to process. error: error running postrotate script run-parts: /etc/cron.daily/logrotate exited with return code 1

  • fedoraのcrontabについて

    linux初心者です。 今、fedora16で「新Linux/UNIX入門」という本を使って、Linuxを勉強しています。 crontabについて一つわからないことがあります。 本では/etc/crontabに 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly の記述があると書かれてありますが、自分のパソコンで$ cat /etc/crontabを実行してみると SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed となり、記述されているはずのものがありません。 ここではなく、/var/spool/cron/rootの方に記述されているかと思って、その中も見てみたのですが、記述されていそうにありません。 どこにこれは記述されているのでしょうか? いろいろといじくっているうちに、誤って自分で消してしまったのでしょうか? どなたかご回答よろしくお願い致します。

  • crontab -e コマンドで編集してもCronが動作しません。

    testユーザーで手動でコマンド実行すると正常に動作するのですが、 crontab -eで、下記のようにCronを登録しても動作しません。。 00 12 * * * /var/www/html/bin/cron.sh args1 /var/log/cronを見ても Jun 19 12:00:01 web1 crond[3095]: (test) RELOAD (cron/test) というように、RELOAD となりまりコマンドが実行してくれません。。 Jun 19 13:01:01 web1 crond[9116]: (root) CMD (run-parts /etc/cron.hourly) というように、CMDが出ているのですが。。

  • crontabの自動実行について (Debian3.0)

    OSはDebian GNU/Linux 3.0です。 /etc/cron.daily の中にviで記述した下記のものを 保存しました。ファイル名back.sh #!/bin/sh rsync -acouv --stats /home/www /backup/back-all ;; しかし、自動実行できていませんでした。 www、back-all共に実在するディレクトリです。 crontabは下記のとおり、初期のままです。 SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 25 6 * * * root test -e /usr/sbin/anacron || run-parts --report /etc/cron.daily 47 6 * * 7 root test -e /usr/sbin/anacron || run-parts --report /etc/cron.weekly 52 6 1 * * root test -e /usr/sbin/anacron || run-parts --report /etc/cron.monthly # 何か間違いがあるのでしょうか?

  • logwatchからメールが来ない

    Fedora7でWEB鯖やメール鯖を運用しています。 8月の中旬に運用開始した後安定して動いていたのですが 9月1日以降Logwatchからのメールが届かなくなってしまいました。 8月31日に行った可能性がある(記憶が確かではないです…)ことといえば、syslogをsyslog-ngに入れ変えたこと位だと思います。 ただ、syslong-ngが正常に動いて居ないのかというと、8月31日以降のlogも正常に記録されているようなので、syslon-ngの問題では無いのかなと思っています。 cronのログを見ると31日以降も毎日4時に Sep 10 04:02:01 fedora crond[9098]: (root) CMD (run-parts /etc/cron.daily) というログが残っており、cronが動いて居ないということもなさそうです。 logwatch自体の不具合かと思い、 # logwatch --print # logwatch --mailto hoge@hoge.com とすると、ログサマリーが正常に表示され、メールも送られていきます。 # /etc/corn.daily/0logwatch として、cronディレクトリ内のlogwatchスクリプトを実行しても、メールが正常に届きました。 # /etc/cron.daily/* として、cronディレクトリのスクリプトを全部実行すると、メールが届かないので、他のcron jobに影響を受けているのかなと思ったりもしますが、どのcron jobが悪いのか分かりません。 cronディレクトリ内のtmpwatchが8月31日更新されているのでこいつが悪いのかもしれませんが、次に何をすればいいのか分からないので質問させていただきました。

  • cron設定で電源のOFFができません。

    cron設定で電源のOFFができません。 cent OS 5.5 で自宅サーバーを立上げ勉強中です。 サーバーの電源を自動で18:00にONにして翌日の7:00にOFFにしたいと思います。 いろいろなホームページを参考にさせていただき、電源のONはパソコンのBIOS設定、OFFは"cron"を使うことできることがわかりました。 電源のONはパソコンのBIOS設定でできましたが、OFFができません。 設定は以下としています。 [root@Linux ~]# vi /etc/crontab CSHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly 0 7 * * * shutdown -h now #追加 [root@Linux ~]# /etc/rc.d/init.d/crond restart [root@Linux ~]#chkconfig crond on [root@Linux ~]# chkconfig --list crond crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@Linux ~]# /etc/rc.d/init.d/crond status crond (pid xxx) を実行中... 設定時間になっても電源がOFFになりません。 [root@Linux ~]# shutdown -h now ではOFFにできます。 (cent OS 5.5 をインストールしているパソコンは 富士通 FMV DESKPOWER CE18B 2002 年製です) よろしくお願いします。

  • Puppy Linuxで cron を使用するには

    Puppy Linux で ダイナミックDNS(DDNS)を使う準備のために,cron を使った定時処理の仕方をテストしていますが,機能しません.ご教授ください.   1)OSは,PuppyLinux4.3.1を使用しています. DDNS は,ieServer のサイトを利用.WEBブラウザ上では,DNSの更新はできています.数分後,ping コマンドを,サブドメイン名で実行すると名前が解決されています.      2)ps コマンドで見ると,デーモンが動いていないようなので /usr/sbin/crond とキーインし,デーモン起動します.   3)「ieserver専用IPアドレス更新スクリプト」ページ(http://ai-line.com/linux/ddns.html#6)の内容を参考に,Perl のプログラムを /etc/DDNS ディレクトリのダウンロードし,変数をセットし,このプログラム単体では,正常動作を確認しています.   4)エディタで,上のサイトの設定ファイルを, /var/spool/cron に root とう名称で作成しました.(下) ---------------------------------------- SHELL=/bin/bash PASH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run - parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron/monthly # Dynamic_DNS */10 * * * * root perl /usr/DDNS/IP_Set_ie.pl ---------------------------------------- いくら待っても,IP_Set_ie.pl が実行された様子がなく(old_ipのタイムスタンプが変化なし),DNSの更新がされません. どのような,間違いがあるのであしょうか? ご教授願います.