サーバーには約24GBのメモリがあります。実行するとfree -g
メモリが使い果たされることがわかります
total used free shared buffers cached
Mem: 23 23 0 0 0 18
-/+ buffers/cache: 4 19
Swap: 56 2 53
top
それから、それまでにこれらすべてのメモリが何によって使い果たされたのかを調べてみましたM
。しかし、その列のメモリはかなり空いているようです%MEM
。
メモリを解放するにはどうすればいいでしょうか?これは計算用のサーバーなので、コンピューターを再起動しない方がよいでしょう。
答え1
の出力を誤解していますfree
。投稿した内容では、19 GB の RAM が空いていると表示されています。表示されている 23 GB は、システムによってキャッシュとして使用されていますが、アプリケーションではまだすぐに使用できます。メモリが空いていると表示されるのもこのためですtop
。
見る翻訳元より詳しい説明については
答え2
参照してくださいこの質問正確な空きメモリを決定します。
デフォルトでは、リナックスがあります非常に効率的実行されているマシン上のキャッシュされたメモリを解放する必要があるメモリ管理プロセス。
しかし、キャッシュメモリ、リナックス時には、キャッシュメモリ使用されていて必要であるためにメモリ関連の問題を引き起こし、最終的には空きメモリを使い果たしてしまう可能性があります。これに対処するには、リナックス保存されたキャッシュメモリを解放します。
メモリをすぐに解放するには、次のようにします。
free && sync && echo 3 > /proc/sys/vm/drop_caches && free
編集済み: このコマンドを cronjob として実行することもできます。
として翻訳者指摘されているように、パフォーマンスのボトルネックを引き起こす可能性があるため、あまりお勧めできません。