web-dev-qa-db-ja.com

なぜubuntuはメモリを解放しないようですか?

Apache2 + phpおよびその他のWebサーバーアプリを使用しています。

Webサーバーに接続するセッションとしてモニターがあります。 RAMメモリがいっぱいです。

ただし、セッションを切断すると、RAMメモリは解放されません。

free -mを介してモニターを使用していますが、セッションが接続されていなくても、未解放のメモリーが表示されます。

解決策はありますか?

8
Tejaskumar Tank

次のコマンドを使用して、未使用のメモリを解放できます。

Sudo sync & sysctl -w vm.drop_caches=3

このコマンドは、キャッシュされたデータを同期してから、実行時に/ proc/sys/vm/drop_cachesにあるOSパラメーターを書き込みます。このパラメーターはカーネルによって一度読み取られ、未使用のメモリーを解放します。

基本的に、カーネルはキャッシュに3つのセクションを予約します。これにより、メモリ使用量が増加する可能性があります。

  • ページキャッシュ
  • iノード

このパラメータに書き込むと、カーネルはクリーンなページキャッシュ、デントリ、およびiノードをRAMから削除し、そのメモリを解放します。割り当てることができる3つの値があります。

  1. vm.drop_caches = 1無料のページキャッシュ。
  2. vm.drop_caches = 2無料のデントリとiノード。
  3. vm.drop_caches =無料のページキャッシュ、デントリ、およびiノード。

重要:実行後、これは通常の状態に戻ります。つまり、ページキャッシュ、デントリ、iノードのキャッシュを再開します。 サーバーの構成とアプリケーションに応じて使用します。

9
JG.