キャッシュ/バッファメモリは、アプリケーションから要求された場合は常にすぐに解放されますか?

キャッシュ/バッファメモリは、アプリケーションから要求された場合は常にすぐに解放されますか?

クラウドサービスの1つのサポートについて継続的に議論しています。問題は、「使用可能メモリー」および「使用可能なスワップ」メトリックに使用可能なメモリーが多数表示されているにもかかわらず、「メモリーを割り当てることができません」エラー(PostgreSQLによって割り当てられた共有メモリーセグメント)が発生することです。

サポートチームは、共有/バッファメモリ(IOキャッシュ)が「アクティブなので直接解放することはできません」、バッファからアプリケーションにメモリを再割り当てする作業がすぐに行われず、時間がかかるためだと主張しています。

私が知る限り、Linuxカーネルは常にI / Oキャッシュのメモリをアプリケーションに即座に再割り当てできるので、そうではありません。私は正しいですか?

答え1

習慣。メモリの最終リリースはオペレーティングシステムによって実行され、時間がかかることがあります。メモリは、後で他のタスクで必要に応じて任意の時間に回収できます。

リリースされるとクリアされるのか気になったら非常にその可能性はほとんどなく、何の理由もなく追加の作業を必要とすることはできません。メモリに機密データが含まれている場合は、メモリをクリーンアップして解放する必要があります。

関連情報