何百ものすばやく連続する小さな一時ファイルを作成し、すぐに読み戻してからリンクを解除する必要があるスクリプトがあります。
私のテストでは、中程度の負荷がかかっていても、Linuxの/tmp
(ディスクへ)または/dev/shm
(ファイルシステムレベルの共有メモリ)にファイルを配置しても、パフォーマンスの違いはほとんどありません。私はこれをファイルシステムキャッシュに帰します。
許可されたディスクは最終的にファイルシステムアクションでヒットしますが、複数の小さな書き込み/読み取り一時ファイルで、ディスクでバックアップされたディレクトリよりも/dev/shm
を推奨する(しない)のはなぜですか?キャッシュされたVFS上の共有メモリディレクトリでパフォーマンスが大幅に向上することに気づきましたか?
/dev/shm
は非常に特別な目的を目的としており、任意のプログラムによってファイルが配置されることを目的としていません。
対照的に、/tmp
は これのために正確に作成されています です。私のシステムでは、/tmp
はtmpfs
でもありますが、/var/tmp
は 設計 大きなファイルを配置するためのものであり、長く留まる可能性があります。
これは基本的に同じです(スワップファイルがある場合、shmはディスクによって暗黙的にバックアップされます)。
/ tmpには、いっぱいになるという利点があります(ハードディスクがスワップファイルよりも大きい可能性があることを考慮して)。また、より広くサポートされています。