オペレーティングシステムはどのくらい高速かつ効率的にキャッシュRAMを取得しますか?

オペレーティングシステムはどのくらい高速かつ効率的にキャッシュRAMを取得しますか?

私は「利用可能なRAMは無駄なRAM」という概念を知っています。私の質問は、OSがキャッシュされたRAMを迅速かつ効率的に取得し、最大使用時間の間にアプリケーションが十分なRAMを確保できるようにする方法です。

LinuxでホストされているWebアプリケーションがあります。通常、メモリ使用率は10〜20%です。ただし、コードの特定の部分を呼び出すと、最大約100%まで急増することがわかります。 (コードはできるだけ最適化されています。)これが発生した場合は、電子メールを実行したいと思います。メモリ使用率(キャッシュまたはアプリケーションメモリを含む)を監視するスクリプトを作成する必要がありますか?

LinuxでOut of Memoryエラーが発生した場合、キャッシュメモリが0で、すべてのRAMがアプリケーションに割り当てられていることを意味しますか?

答え1

オペレーティングシステムはどのようにキャッシュRAMを迅速かつ効率的に取得し、アプリケーションが最大使用量で十分なRAMを確保できるようにしますか?

ARCが突然のRAM需要を吸収するのに速く減らせないLinuxでZFSを使用しない限り、Kusalalanandaがすでに述べたように、カーネルがキャッシュを解放するのにかかる時間は無視できます。

メモリ使用率(キャッシュまたはアプリケーションメモリを含む)を監視するスクリプトを作成する必要がありますか?

私はアプリケーションメモリとシステムメモリを監視します。アプリケーションのメモリ容量を確保するためにキャッシュを減らすと、より多くのディスクI / Oが必要になり、パフォーマンスが低下する可能性があります。

LinuxでOut of Memoryエラーが発生した場合、キャッシュメモリが0で、すべてのRAMがアプリケーションに割り当てられていることを意味しますか?

メモリ不足が発生した場合、ほとんどのバッファ/キャッシュは解放/フラッシュされましたが、これは意味しません。みんなメモリはアプリケーションで使用されます。一部のメモリは、カーネル、RAMベースのファイルシステム、または一部のハードウェアで直接使用されます。

関連情報