外付けハードドライブに保存されている大量のデータを処理するコードがあります。ディスクには約6.5GiBのデータがありますが、内容全体ではない一部のファイルのみが処理されます。
必要な処理時間を短縮するために、ディスクの内容のコピーをメモリに保存するためにtmpfsファイルシステムを使用してRAMディスクを作成しました。システムを再起動するたびに、ディスクの内容をこのRAMディスクにコピーする必要があります。
すべてが私が持っている利用可能なメモリ量に合うことができるので、これはうまくいきます。
ただし、後で他の大きなデータセットに変更すると、動作しなくなる可能性があります。
実際に読み取っているデータの量は1GB程度にすぎないため、これはかなり非効率的です。 (10%少し超えると思います。)
外部ディスクから読み取ったデータをキャッシュするためにメモリにRAMディスクを作成する方法はありますか?
私はこのようなことがLinuxで可能であると確信しています。しかし、何を探すべきかわかりません。 Ramdisksはすでにかなりのニッチなテーマです。
しかし、私はこの記事を書いている時点でDebian 10以前のテストブランチであるDebian Testを使用しています。
編集:違いがある場合は、そのディスクに書き換えないでください。
ベストアンサー1
使用を検討することもできます。ファイルシステムの上書き。オーバーレイファイルシステムを使用すると、ディスクマウントポイントとラムディスクマウントポイントをスタックファイルシステム(オーバーレイファイルシステム)に結合できます。
OverlayFSは書き込み時にコピー方式で動作するため、オーバーレイが空のRAMディスクで始まる場合、書き込み権限でファイルを開く場合にのみデータがRAMディスクに書き込まれます。理論的には、touch
必要なファイルをRAMに事前にコピーできます。
しかし、Linuxはすでに強力なディスクキャッシュ。ここでホイールを再発明しないことを確認したいかもしれません。