rosbag
私が使用する機能ROS
。rosbag
他のROSノードから大量のデータを記録できます。全体として、200MBファイルなどの巨大なファイルが生成されます。
これらのファイルを作成した後、システムのバフ/キャッシュが大幅に増加したことがわかりました。これは私のキャプチャです。
rosbag
それ以後はbuff/cache
多く増加すると同時にfree
19983年から10896年に減少したことが分かる。
私は理解できません。私が知る限り、free
これは利用可能なRAMサイズ、buff/cache
つまりキャッシュサイズを表します。キャッシュがRAMサイズを使用できるのはなぜですか?そして、生成されたファイルを削除すると、17999から8925に戻ることも発見しrosbag
ましたbuff/cache
。これがシステムの動作ですか?いつbuff/cache
増加しますか?いつ減少しますかbuff/cache
?
答え1
Inの出力free
:
- 「使用可能」とは、未使用メモリを意味する。
- 「バフ/キャッシュ」は、バッファ(ディスクへの書き込みを待つメモリのデータ)とキャッシュ(メモリでも使用可能なディスクのデータ)が使用するメモリを表します。
- 「空き」は、プロセスがスワップなしで割り当てて使用できるメモリ量を意味します(ほとんどの場合、この値に注意する必要があります)。
プロセスが大量のデータを書き込むと、データはディスクに書き込まれる前にバッファに移動します。これらのバッファはメモリスペースを占めるため、未使用のメモリ量が少なくなります。ただし、このメモリは使用可能になる可能性があるため、使用可能なメモリ量は減りません。
ファイルを削除すると、バッファは不要になり、回収されます(キャッシュに保持することも意味がありません)。
プロセスがデータを書き込むとバッファが増加し、データがディスクに書き込まれるとバッファが減少します。キャッシュは、ディスクデータがメモリから利用可能になると(ディスクからデータを読み取るか、バッファをキャッシュに変換することによって)増加し、メモリの圧迫によってもはや役に立たなくなると減少します。どちらもメモリーに存在するため、そのサイズは使用可能なメモリー量に影響しますが、両方とも回収できるため、サイズは使用可能なメモリー量には影響しません。