free -m:キャッシュ/バッファリングのため、利用可能なサイズが縮小されます。

free -m:キャッシュ/バッファリングのため、利用可能なサイズが縮小されます。

rosbag私が使用する機能ROSrosbag他のROSノードから大量のデータを記録できます。全体として、200MBファイルなどの巨大なファイルが生成されます。

これらのファイルを作成した後、システムのバフ/キャッシュが大幅に増加したことがわかりました。これは私のキャプチャです。

フォワードrosbag: ここに画像の説明を入力してください。

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

rosbagそれ以後はbuff/cache多く増加すると同時にfree19983年から10896年に減少したことが分かる。

私は理解できません。私が知る限り、freeこれは利用可能なRAMサイズ、buff/cacheつまりキャッシュサイズを表します。キャッシュがRAMサイズを使用できるのはなぜですか?そして、生成されたファイルを削除すると、17999から8925に戻ることも発見しrosbagましたbuff/cache。これがシステムの動作ですか?いつbuff/cache増加しますか?いつ減少しますかbuff/cache

ベストアンサー1

Inの出力free

  • 「使用可能」とは、未使用メモリを意味する。
  • 「バフ/キャッシュ」は、バッファ(ディスクへの書き込みを待つメモリのデータ)とキャッシュ(メモリでも使用可能なディスクのデータ)が使用するメモリを表します。
  • 「空き」は、プロセスがスワップなしで割り当てて使用できるメモリ量を意味します(ほとんどの場合、この値に注意する必要があります)。

プロセスが大量のデータを書き込むと、データはディスクに書き込まれる前にバッファに移動します。これらのバッファはメモリスペースを占めるため、未使用のメモリ量が少なくなります。ただし、このメモリは使用可能になる可能性があるため、使用可能なメモリ量は減りません。

ファイルを削除すると、バッファは不要になり、回収されます(キャッシュに保持することも意味がありません)。

プロセスがデータを書き込むとバッファが増加し、データがディスクに書き込まれるとバッファが減少します。キャッシュは、ディスクデータがメモリから利用可能になると(ディスクからデータを読み取るか、バッファをキャッシュに変換することによって)増加し、メモリの圧迫によってもはや役に立たなくなると減少します。どちらもメモリーに存在するため、そのサイズは使用可能なメモリー量に影響しますが、両方とも回収できるため、サイズは使用可能なメモリー量には影響しません。

おすすめ記事