web-dev-qa-db-ja.com

Debianでキャッシュされたメモリをクリアする方法は?

free -m、私はこの出力を取得します:

Free -m output

使用済みメモリをクリアするために使用できるコマンドはありますか?私はこれを試しました:

echo 1 > /proc/sys/vm/drop_caches

Sudoを要求します。ただし、Sudoの後でも、不正なコマンドエラーが発生します。

drop_caches について知ったリンクは次のとおりです。

キャッシュをクリアする方法を探しています。

これをroot(Sudoではない)として試してください。

#sync && echo 3 > /proc/sys/vm/drop_caches
11
TOC

の問題:

Sudo echo 1 > /proc/sys/vm/drop_caches

リダイレクトは、「Sudo echo 1」が発生する前に、最初のシェルで(つまり、自分のアカウントの下で)発生しますが、これは本当にrootアクセスを必要とする部分ではありません。 Sudo内に配置するには、 ">"でdrop_cachesを開く必要があります。怠惰な方法の1つ(3をstdoutに複製するために遅延するため、実際には必要ありません)は次のとおりです。

echo 3 | Sudo tee /proc/sys/vm/drop_caches

Drop_cachesに書き込むオプションは次のとおりです。

  1. 無料のページキャッシュ
  2. 無料のエントリとiノード
  3. 無料のページキャッシュ、dentries、inode。

そして、あなたはすべき最初に同期するので、全部で:

sync ; echo 3 | Sudo tee /proc/sys/vm/drop_caches

またはstdoutの偽の「3」が気に入らない場合:

Sudo sh -c 'sync ; echo 3 >/prod/sys/vm/drop_caches'
2
Alex North-Keys

crontabrootとして自動的に作成できます。

~$ Sudo crontab -e

次のようなyour/new crontabファイルが表示されます。

# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

そして、これを新しい行に追加して1時間ごとにフラッシュします。

# Every hour flushes the memory cache on system
0 * * * * sync; echo 3 > /proc/sys/vm/drop_caches

私のsyslog tailf出力に表示されます。

~$ tailf /var/log/syslog | grep 'cron'

そして、私は以下の出力を見る:

May 31 14:07:16 debian crontab[17353]: (root) BEGIN EDIT (root)
May 31 14:07:20 debian crontab[17353]: (root) END EDIT (root)

...

May 31 15:00:02 debian CRON[22169]: (root) CMD (sync; echo 3 > /proc/sys/vm/drop_caches)
May 31 15:17:01 debian CRON[18828]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
1