私は「利用可能な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ベースのファイルシステム、または一部のハードウェアで直接使用されます。