大量のデータをディスクに書き込んだ後、メモリバッファ/キャッシュ使用量を増やすことはできますか?

大量のデータをディスクに書き込んだ後、メモリバッファ/キャッシュ使用量を増やすことはできますか?

私のApacheサーバーでは、カスタムApacheモジュールを使用してファイルのリクエストロギングを有効にしました。

結局のところ、ログファイルは数ギガバイトに達する可能性があります。 Nagiosを使用すると、メモリ使用量が通常よりも高いことがわかりました(利用可能なメモリが4〜5GB少ない)。キャッシュ済みメモリ(たとえば、コマンドを使用してbuff / cacheに報告された内容free -m

ここに画像の説明を入力してください。

  • 19: ログを無効にする
  • 20: ログの有効化
  • 21: ログの有効化 + VM メモリの追加

これまでは明確ではないなぜこれは本当ですが、後でもう一度読む必要がある場合に備えて、Linuxがディスクに書き込まれた内容を一時的にメモリに保存することを願っています。

これは意味がありますか、それとも主にディスクから読み取る(記録されていない)ためのキャッシュですか?

接続が閉じられると、割り当てられた内容が自動的にクリーンアップされるため(可能性の1つはTCP / IP遅延接続がたくさんあるため)、Apacheモジュールにメモリリークがあるとは思いません。したがって、AFAIKはそうではありません。キャッシュメモリには表示されません。

答え1

私はLinuxが後でもう一度読む必要がある場合に備えて、ディスクに書き込まれた内容を一時的にメモリに保存したいと思います。

そうですね。ここに見えるのがまさにそれです。ディスクに書き込まれたデータは通常、短い時間内(通常は他のプロセスによって)読み取られるのが一般的であり、キャッシュはディスクから読み取られたデータとディスクに書き込まれるデータの両方に使用されます。

通常、空きメモリはメモリの無駄なので、データのキャッシュに使用することをお勧めします。

答え2

私の質問に答える場合:はい、可能です。

次のコマンドはキャッシュをクリアし、ランダムなデータをファイルに書き込みます。

sysctl -w vm.drop_caches=3          ; drop memory cache   
free -m                             ; check memory
head -c 1G </dev/urandom >myfile    ; create a 1G random file
free -m                             ; check memory

結果は次のとおりです。

              Before : free: 474  cache: 143  avail: 450
After (100M written) : free: 371  cache: 246  avail: 428
After (  1G written) : free:  72  cache: 543  avail: 414 

ディスクに書き込まれるデータが多いほど、容量も大きくなります。隠れ家なると同時に無料記憶力の低下。効果があるメモリは(予想どおり)ある程度変化しないままである。

関連情報